C++ CI Workflow with conda-forge dependencies #179
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: C++ CI Workflow with conda-forge dependencies | |
on: | |
push: | |
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: | |
name: '[${{ matrix.os }}@${{ matrix.build_type }}@conda]' | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
build_type: [Release] | |
os: [ubuntu-latest, windows-2019, macos-latest] | |
imgui: [mamba, vendored] | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
miniforge-version: latest | |
- name: Dependencies | |
shell: bash -l {0} | |
run: | | |
# Compilation related dependencies | |
mamba install cmake compilers make ninja pkg-config | |
# Actual dependencies | |
mamba install glew glfw yarp | |
- name: Imgui | |
if: contains(matrix.imgui, 'mamba') | |
shell: bash -l {0} | |
run: | | |
mamba install imgui | |
- name: OpenGL [Linux] | |
if: contains(matrix.os, 'ubuntu') | |
shell: bash -l {0} | |
run: | | |
# OpenGL is not found on Ubuntu when using conda. Related issue https://github.com/robotology/robotology-superbuild/issues/929 | |
# See https://github.com/robotology/robotology-superbuild/issues/477 | |
# See https://github.com/robotology/robotology-superbuild/pull/1606 | |
mamba install expat freeglut libselinux-cos7-x86_64 xorg-libxau libxcb xorg-libxdamage xorg-libxext xorg-libxfixes xorg-libxxf86vm xorg-libxrandr mesa-libgl-cos7-x86_64 mesa-libgl-devel-cos7-x86_64 | |
- name: Configure [Linux, macOS] | |
if: contains(matrix.os, 'ubuntu') || contains(matrix.os, 'macos') | |
shell: bash -l {0} | |
run: | | |
mkdir -p build | |
cd build | |
cmake -GNinja -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} .. | |
- name: Configure [Windows] | |
if: contains(matrix.os, 'windows') | |
shell: bash -l {0} | |
run: | | |
mkdir -p build | |
cd build | |
cmake -G"Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} .. | |
- name: Build | |
shell: bash -l {0} | |
run: | | |
cd build | |
cmake --build . --config ${{ matrix.build_type }} | |