CI Workflow #788
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: CI Workflow | |
on: | |
workflow_dispatch: | |
pull_request: | |
schedule: | |
# * is a special character in YAML so you have to quote this string | |
# Execute a "nightly" build at 2 AM UTC | |
- cron: '0 2 * * *' | |
jobs: | |
build-with-conda-dependencies: | |
name: '[conda:${{ matrix.os }}]' | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
build_type: [Release] | |
os: [ubuntu-22.04, macos-latest, windows-2019] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Print used environment (no conda) | |
shell: bash -l {0} | |
run: | | |
env | |
- uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-file: ci_env.yml | |
# Additional dependencies useful only on Linux | |
- name: Additional Dependencies (Linux) | |
if: contains(matrix.os, 'ubuntu') | |
shell: bash -l {0} | |
run: | | |
# Additional dependencies only useful on Linux | |
# See https://github.com/robotology/robotology-superbuild/issues/477 | |
micromamba install expat-cos6-x86_64 freeglut libselinux-cos6-x86_64 libxau-cos6-x86_64 libxcb-cos6-x86_64 libxdamage-cos6-x86_64 libxext-cos6-x86_64 libxfixes-cos6-x86_64 libxxf86vm-cos6-x86_64 mesa-libgl-cos6-x86_64 mesa-libgl-devel-cos6-x86_64 | |
# Update package lists | |
sudo apt-get update | |
# See https://github.com/robotology/gz-yarp-plugins/pull/38#issuecomment-1681909589 for more info | |
sudo apt install libgl1 libgl1-mesa-dri libselinux1 libxdamage1 libxxf86vm1 libxext6 libopengl0 libegl1 | |
- name: Configure VS Toolchain (Windows) | |
if: contains(matrix.os, 'windows') | |
uses: ilammy/msvc-dev-cmd@v1.12.1 | |
- name: Setup compilation env variables (Windows) | |
if: contains(matrix.os, 'windows') | |
shell: bash -l {0} | |
run: | | |
bash_vc_install=${VCToolsInstallDir//\\//} | |
compiler_path=${bash_vc_install}bin/Hostx64/x64/cl.exe | |
echo "CC=${compiler_path}" >> $GITHUB_ENV | |
echo "CXX=${compiler_path}" >> $GITHUB_ENV | |
echo "CMAKE_INSTALL_PREFIX=${CONDA_PREFIX}\Library" >> $GITHUB_ENV | |
- name: Setup compilation env variables (non-Windows) | |
if: contains(matrix.os, 'ubuntu') || contains(matrix.os, 'macos') | |
shell: bash -l {0} | |
run: | | |
echo "CMAKE_INSTALL_PREFIX=${CONDA_PREFIX}" >> $GITHUB_ENV | |
- name: Print used environment | |
shell: bash -l {0} | |
run: | | |
conda list --explicit | |
env | |
- name: Configure | |
shell: bash -l {0} | |
run: | | |
mkdir -p build | |
cd build | |
cmake -GNinja -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ | |
-DBUILD_TESTING:BOOL=ON .. | |
- name: Build | |
shell: bash -l {0} | |
run: | | |
cd build | |
cmake --build . --config ${{ matrix.build_type }} | |
- name: Test_ubuntu | |
if: contains(matrix.os, 'ubuntu') | |
shell: bash -l {0} | |
run: | | |
cd build | |
# LaserTest and CameraTest are failing on conda-forge on Ubuntu: https://github.com/robotology/gz-sim-yarp-plugins/issues/196 | |
ctest -E "^LaserTest|^CameraTest" --output-on-failure -C ${{ matrix.build_type }} . | |
- name: Test_macos | |
if: contains(matrix.os, 'macos') | |
shell: bash -l {0} | |
run: | | |
cd build | |
ctest --output-on-failure -C ${{ matrix.build_type }} . | |
- name: Install | |
run: | | |
cd build | |
cmake --build . --config ${{ matrix.build_type }} --target install | |
- name: Test installed package | |
shell: bash -l {0} | |
run: | | |
cd build | |
export CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/install | |
cmake-package-check gz-sim-yarp-plugins --targets gz-sim-yarp-plugins::gz-sim-yarp-device-registry |