Skip to content

update CI

update CI #117

Workflow file for this run

name: Tests
on:
push:
branches:
- main
pull_request:
branches:
- main
schedule:
- cron: "0 7 * * 0"
env:
ROBOTPKG_URL: "http://robotpkg.openrobots.org/packages/debian"
ROS: "jazzy"
UBUNTU: "noble"
jobs:
test:
name: "Test ${{ matrix.pm }} on ${{ matrix.os }}"
runs-on: "${{ matrix.os }}"
strategy:
fail-fast: false
matrix:
pm: ["pip", "conda", "nix"]
os: ["ubuntu-24.04", "ubuntu-24.04-arm", "macos-15-intel", "macos-15", "windows-latest"]
exclude:
- pm: "pip"
os: "windows-latest"
- pm: "nix"
os: "windows-latest"
include:
- pm: "robotpkg"
os: "ubuntu-24.04"
- pm: "ros"
os: "ubuntu-24.04"
- pm: "brew"
os: "macos-15"
steps:
- uses: actions/checkout@v5
# brew
- if: matrix.pm == 'brew'
uses: Homebrew/actions/setup-homebrew@master
- if: matrix.pm == 'brew'
run: brew install pinocchio
- if: matrix.pm == 'brew'
run: echo "PATH=/opt/homebrew/opt/python@3/libexec/bin:$PATH" >> $GITHUB_ENV
# conda
- if: matrix.pm == 'conda'
uses: conda-incubator/setup-miniconda@v3
- if: matrix.pm == 'conda'
run: conda install -n test -c conda-forge cmake cxx-compiler eigen eigenpy libboost-devel libboost-python-devel pinocchio
- if: matrix.pm == 'conda'
run: echo "CMAKE_PREFIX_PATH=$CONDA/envs/test" >> $GITHUB_ENV
# nix
- if: matrix.pm == 'nix'
uses: cachix/install-nix-action@v31
- if: matrix.pm == 'nix'
run: >
nix shell 'nixpkgs#python3Packages.pinocchio' -c
nix develop 'nixpkgs#python3Packages.pinocchio' -c
env | grep .=. >> $GITHUB_ENV
# pip
- if: matrix.pm == 'pip'
uses: actions/setup-python@v6
with:
python-version: "3.14"
- if: matrix.pm == 'pip'
run: pip install pin[build]
- if: matrix.pm == 'pip'
run: echo "CMAKE_PREFIX_PATH=$(cmeel cmake)" >> $GITHUB_ENV
# robotpkg
- if: matrix.pm == 'robotpkg'
run: sudo wget "${ROBOTPKG_URL}/robotpkg.gpg" -O /robotpkg.gpg
- if: matrix.pm == 'robotpkg'
run: >
echo "deb [arch=amd64 signed-by=/robotpkg.gpg] ${ROBOTPKG_URL}/pub ${UBUNTU} robotpkg"
| sudo tee /etc/apt/sources.list.d/robotpkg.list
- if: matrix.pm == 'robotpkg'
run: sudo apt-get update && sudo apt-get install -qy robotpkg-py3*-pinocchio
- if: matrix.pm == 'robotpkg'
run: echo "CMAKE_PREFIX_PATH=/opt/openrobots" >> $GITHUB_ENV
# ros
- if: matrix.pm == 'ros'
run: sudo wget "https://raw.githubusercontent.com/ros/rosdistro/master/ros.key" -O /ros.key
- if: matrix.pm == 'ros'
run: >
echo "deb [arch=amd64 signed-by=/ros.key] http://packages.ros.org/ros2/ubuntu ${UBUNTU} main"
| sudo tee /etc/apt/sources.list.d/ros.list
- if: matrix.pm == 'ros'
run: sudo apt-get update && sudo apt-get install -qy "ros-${ROS}-pinocchio"
- if: matrix.pm == 'ros'
run: echo "CMAKE_PREFIX_PATH=/opt/ros/${ROS}" >> $GITHUB_ENV
# windows
# thx https://gist.github.com/justinian/81a2e55c89e8301a8a96 & https://stackoverflow.com/a/74547513/1368502
- if: matrix.os == 'windows'
run: >
cmd /c '"%programfiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 && set'
| Select-String -Pattern "^(.*?)=(.*)$"
| Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- run: cmake -B build -DCMAKE_BUILD_TYPE=Release
- run: cmake --build build
- if: matrix.os != 'windows-latest'
run: ./build/main
- if: matrix.os == 'windows-latest'
run: .\build\Debug\main.exe
docker:
runs-on: "ubuntu-latest"
container: "ghcr.io/stack-of-tasks/pinocchio:devel" # todo: latest ?
steps:
- uses: actions/checkout@v5
- run: cmake -B build -DCMAKE_BUILD_TYPE=Release
- run: cmake --build build
- run: ./build/main
# TODO: way too long
#test-arch:
#runs-on: "ubuntu-latest"
#container: ${{ matrix.container }}
#strategy:
#fail-fast: false
#matrix:
#container: ["archlinux/archlinux:base-devel"]
#env:
#MAKEFLAGS: -j4
#steps:
#- uses: actions/checkout@v3
## install paru
#- run: pacman -Syu --noconfirm git
#- run: useradd -mG wheel user
#- run: echo "%wheel ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
#- run: git clone https://aur.archlinux.org/paru-bin.git
#- run: chown -R user paru-bin
#- run: su user -c "makepkg -D paru-bin -si --noconfirm"
## use paru to install pinocchio and its dependencies from AUR
#- run: su user -c "paru -Syu --noconfirm pinocchio"
#- run: cmake -B build -S .
#- run: cmake --build build
#- run: ./build/main