Implementation:Google deepmind Mujoco CI Build Workflow
| Knowledge Sources | |
|---|---|
| Domains | CI/CD, Build Automation |
| Last Updated | 2026-02-15 04:00 GMT |
Overview
GitHub Actions workflow that builds and tests MuJoCo across multiple operating systems and compiler toolchains.
Description
The build.yml workflow defines a comprehensive CI matrix that compiles MuJoCo on Ubuntu (22.04 and 24.04), macOS, and Windows using a range of GCC (10 through 14) and Clang (14 through 18) compilers, as well as MSVC and Apple Clang. It triggers on pushes and pull requests, ignoring documentation-only changes (paths under doc/ and README.md files). The workflow uses a strategy matrix with fail-fast: false so that all platform/compiler combinations are tested even if one fails.
Usage
This workflow runs automatically on every push or pull request to the repository, except when only documentation files are modified. It is the primary gatekeeper ensuring cross-platform build correctness before code is merged.
Code Reference
Source Location
- Repository: Google_deepmind_Mujoco
- File: .github/workflows/build.yml
- Lines: 1-455
Key Functions
// Trigger configuration
name: build
on:
push:
paths-ignore:
- "doc/**"
- "**/README.md"
pull_request:
paths-ignore:
- "doc/**"
- "**/README.md"
// Strategy matrix (excerpt)
jobs:
mujoco:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-24.04
label: "ubuntu-24.04-gcc-14"
cmake_args: >-
-G Ninja
-DCMAKE_C_COMPILER:STRING=gcc-14
-DCMAKE_CXX_COMPILER:STRING=g++-14
- os: ubuntu-24.04
label: "ubuntu-24.04-clang-18"
cmake_args: >-
-G Ninja
-DCMAKE_C_COMPILER:STRING=clang-18
-DCMAKE_CXX_COMPILER:STRING=clang++-18
-DMUJOCO_HARDEN:BOOL=ON
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| Push event | Git event | Yes | Triggered on push to any branch (excluding doc-only changes) |
| Pull request event | Git event | Yes | Triggered on pull requests (excluding doc-only changes) |
| matrix.os | String | Yes | Runner OS image (e.g., ubuntu-24.04, macos-14, windows-2022)
|
| matrix.cmake_args | String | Yes | CMake configuration arguments including generator and compiler selection |
| matrix.tmpdir | String | Yes | Temporary directory path used during the build process |
Outputs
| Name | Type | Description |
|---|---|---|
| Build status | CI status | Pass/fail result for each matrix entry indicating build and test success |
| Test results | CTest output | Results from running the MuJoCo test suite under each compiler/platform combination |