Adding a spline joint to the joint collection #1133
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI - MacOS/Linux/Windows via Pixi | |
| on: | |
| schedule: | |
| - cron: '0 0 * * 1' | |
| push: | |
| branches: | |
| - devel | |
| paths-ignore: | |
| - doc/** | |
| - .gitlab-ci.yml | |
| - .gitignore | |
| - '**.md' | |
| - CITATION.* | |
| - COPYING.LESSER | |
| - colcon.pkg | |
| - .pre-commit-config.yaml | |
| pull_request: | |
| paths-ignore: | |
| - doc/** | |
| - .gitlab-ci.yml | |
| - .gitignore | |
| - '**.md' | |
| - CITATION.* | |
| - COPYING.LESSER | |
| - colcon.pkg | |
| - .pre-commit-config.yaml | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| pinocchio-pixi: | |
| name: ${{ matrix.os }} - Env ${{ matrix.environment }} ${{ matrix.build_type }} ${{ matrix.compiler }} | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| CCACHE_BASEDIR: ${GITHUB_WORKSPACE} | |
| CCACHE_DIR: ${GITHUB_WORKSPACE}/.ccache | |
| CCACHE_COMPRESS: true | |
| CCACHE_COMPRESSLEVEL: 5 | |
| # Since pixi will install a compiler, the compiler mtime will be changed. | |
| # This can invalidate the cache (https://ccache.dev/manual/latest.html#config_compiler_check) | |
| CCACHE_COMPILERCHECK: content | |
| BUILD_ADVANCED_TESTING: ${{ matrix.BUILD_ADVANCED_TESTING }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, macos-15-intel] | |
| environment: [all, all-py39] | |
| build_type: [Release, Debug] | |
| include: | |
| # Disable BUILD_ADVANCED_TESTING as the test can take many time to run | |
| - os: ubuntu-latest | |
| BUILD_ADVANCED_TESTING: OFF | |
| - os: ubuntu-24.04-arm | |
| BUILD_ADVANCED_TESTING: OFF | |
| - os: macos-latest | |
| BUILD_ADVANCED_TESTING: OFF | |
| - os: macos-15-intel | |
| BUILD_ADVANCED_TESTING: OFF | |
| - os: windows-latest | |
| environment: all | |
| build_type: Release | |
| BUILD_ADVANCED_TESTING: OFF | |
| - os: windows-latest | |
| environment: all-clang-cl | |
| build_type: Release | |
| BUILD_ADVANCED_TESTING: OFF | |
| steps: | |
| # extract branch name or checkout devel branch for scheduled events | |
| - name: Get branch name or checkout devel | |
| shell: bash -el {0} | |
| run: | | |
| if [ "${{ github.event_name }}" == "schedule" ]; then | |
| echo "BRANCH_NAME=devel" >> $GITHUB_ENV | |
| echo "LABELS=build_all" >> $GITHUB_ENV | |
| else | |
| echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_ENV | |
| fi | |
| - uses: actions/checkout@v5 | |
| with: | |
| ref: ${{ env.BRANCH_NAME }} | |
| submodules: recursive | |
| - uses: actions/cache@v4 | |
| with: | |
| path: .ccache | |
| key: ccache-macos-linux-conda-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.environment }}_${{ github.sha }} | |
| restore-keys: ccache-macos-linux-conda-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.environment }}_ | |
| - uses: prefix-dev/setup-pixi@v0.9.2 | |
| with: | |
| cache: true | |
| environments: ${{ matrix.environment }} | |
| # Avoid filling all disk space with debug symbols | |
| - name: Setup CMAKE_TOOLCHAIN_FILE | |
| if: (contains(matrix.os, 'macos') || contains(matrix.os, 'ubuntu')) && contains(matrix.build_type, 'Debug') | |
| run: | | |
| echo "CMAKE_TOOLCHAIN_FILE=${GITHUB_WORKSPACE}/.github/workflows/cmake/linux-debug-toolchain.cmake" >> "$GITHUB_ENV" | |
| - name: Get Compilation Flags | |
| id: get_labels | |
| uses: actions/github-script@v8 | |
| env: | |
| LABELS: ${{ env.LABELS }} | |
| with: | |
| script: | | |
| const script = require('./.github/workflows/scripts/get_compilation_flags.js'); | |
| await script({github, context, core}) | |
| result-encoding: string | |
| - name: Build Pinocchio [MacOS/Linux/Windows] | |
| shell: bash -el {0} | |
| env: | |
| CMAKE_BUILD_PARALLEL_LEVEL: 2 | |
| PINOCCHIO_BUILD_TYPE: ${{ matrix.build_type }} | |
| run: | | |
| # Clear ccache statistics | |
| pixi run -e ${{ matrix.environment }} ccache -z | |
| # Launch configure but overwrite default options | |
| pixi run -e ${{ matrix.environment }} configure \ | |
| -DBUILD_ADVANCED_TESTING=${{ env.BUILD_ADVANCED_TESTING }} \ | |
| ${{ steps.get_labels.outputs.cmakeFlags }} | |
| pixi run -e ${{ matrix.environment }} cmake --build build --target all | |
| pixi run -e ${{ matrix.environment }} ctest --test-dir build --output-on-failure | |
| pixi run -e ${{ matrix.environment }} cmake --install build | |
| - name: Uninstall Pinocchio | |
| shell: bash -el {0} | |
| run: | | |
| pixi run -e ${{ matrix.environment }} cmake --build build --target uninstall | |
| - name: Remove build directory to save disk space | |
| if: contains(matrix.os, 'ubuntu') && contains(matrix.build_type, 'Debug') | |
| run: | | |
| # Remove build directory to save disk space | |
| # This is only done on Ubuntu because this create some issues with clang and ccache on OSX | |
| rm -rf build | |
| # Following steps will modify the pixi environment | |
| - name: Build Pinocchio cpp [MacOS/Linux/Windows] | |
| shell: bash -el {0} | |
| env: | |
| CMAKE_BUILD_PARALLEL_LEVEL: 2 | |
| PINOCCHIO_BUILD_TYPE: ${{ matrix.build_type }} | |
| run: | | |
| pixi run -e ${{ matrix.environment }} configure \ | |
| -B build_cpp \ | |
| -DBUILD_PYTHON_INTERFACE=OFF \ | |
| -DBUILD_ADVANCED_TESTING=${{ env.BUILD_ADVANCED_TESTING }} \ | |
| ${{ steps.get_labels.outputs.cmakeFlags }} | |
| pixi run -e ${{ matrix.environment }} cmake --build build_cpp --target all | |
| pixi run -e ${{ matrix.environment }} cmake --install build_cpp | |
| pixi run -e ${{ matrix.environment }} ctest --test-dir build_cpp --output-on-failure | |
| - name: Build Pinocchio standalone python [MacOS/Linux/Windows] | |
| shell: bash -el {0} | |
| env: | |
| CMAKE_BUILD_PARALLEL_LEVEL: 2 | |
| PINOCCHIO_BUILD_TYPE: ${{ matrix.build_type }} | |
| run: | | |
| pixi run -e ${{ matrix.environment }} configure \ | |
| -DBUILD_PYTHON_INTERFACE=ON \ | |
| -DBUILD_STANDALONE_PYTHON_INTERFACE=ON \ | |
| -B build_python \ | |
| -DBUILD_ADVANCED_TESTING=${{ env.BUILD_ADVANCED_TESTING }} \ | |
| ${{ steps.get_labels.outputs.cmakeFlags }} | |
| pixi run -e ${{ matrix.environment }} cmake --build build_python --target all | |
| pixi run -e ${{ matrix.environment }} cmake --install build_python | |
| pixi run -e ${{ matrix.environment }} ctest --test-dir build_python --output-on-failure | |
| - name: Display ccache statistics | |
| shell: bash -el {0} | |
| run: | | |
| pixi run -e ${{ matrix.environment }} ccache -sv | |
| check: | |
| if: always() | |
| name: check-macos-linux-windows-pixi | |
| needs: | |
| - pinocchio-pixi | |
| runs-on: Ubuntu-latest | |
| steps: | |
| - name: Decide whether the needed jobs succeeded or failed | |
| uses: re-actors/alls-green@release/v1 | |
| with: | |
| jobs: ${{ toJSON(needs) }} |