Pixi CI Workflow #195
This file contains 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: Pixi CI Workflow | |
on: | |
# on demand | |
workflow_dispatch: | |
inputs: | |
delete_pixi_lock: | |
description: 'If true, delete pixi.lock, to test against the latest version of dependencies.' | |
required: true | |
default: 'false' | |
pull_request: | |
schedule: | |
# * is a special character in YAML so you have to quote this string | |
# Execute a "nightly" build twice a week 2 AM UTC | |
- cron: '0 2 * * 2,5' | |
jobs: | |
build-with-pixi: | |
name: '[pixi:${{ matrix.os }}@task:${{ matrix.pixi_task }}]' | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
build_type: [Release] | |
os: [ubuntu-22.04, macos-13, macos-14, windows-2019] | |
pixi_task: [build-all, build-ros2, build-ros2moveit] | |
exclude: | |
# ros is not supported on osx-arm64 (incompatibility with gz-sim8) | |
- os: macos-14 | |
pixi_task: build-ros2 | |
# We already test linux-64 and ros2 in build-all-ros2moveit | |
- os: ubuntu-22.04 | |
pixi_task: build-ros2 | |
# Windows build fail due to length of build folder | |
# See https://github.com/robotology/robotology-superbuild/pull/1746#issuecomment-2514352629 | |
- os: windows-2019 | |
pixi_task: build-ros2 | |
# moveit is only supported on Linux for now (missing required package in robostack) | |
- os: macos-13 | |
pixi_task: build-ros2moveit | |
- os: macos-14 | |
pixi_task: build-ros2moveit | |
- os: windows-2019 | |
pixi_task: build-ros2moveit | |
steps: | |
- uses: actions/checkout@v4 | |
# On periodic jobs and when delete_pixi_lock option is true, delete the pixi.lock to check that the project compiles with latest version of dependencies | |
- name: Delete pixi.lock on scheduled jobs or if delete_pixi_lock is true | |
if: github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.event.inputs.delete_pixi_lock == 'true') | |
shell: bash | |
run: | | |
rm pixi.lock | |
- name: Print used environment | |
shell: bash | |
run: | | |
env | |
- uses: prefix-dev/[email protected] | |
- name: Workaround on Windows | |
if: contains(matrix.os, 'windows') | |
shell: bash | |
run: | | |
# Avoid YCM complaining that the git user is not set | |
# Eventually we could consider removing that check in YCM | |
git config --global user.name PixiGHA User | |
git config --global user.email [email protected] | |
# On Windows the setup.bat generated by the pixi run configure | |
# needs to be called before calling pixi run build-all, so | |
# we explicitly call pixi run configure-all | |
pixi run configure-all | |
# Workaround for build-ros2 builds | |
pixi run configure-ros2 | |
- name: Build | |
shell: bash | |
run: | | |
# Avoid YCM complaining that the git user is not set | |
# Eventually we could consider removing that check in YCM | |
git config --global user.name PixiGHA User | |
git config --global user.email [email protected] | |
pixi run ${{ matrix.pixi_task }} |