Skip to content

Commit

Permalink
CI: Add conda-forge based builds on Linux (#484)
Browse files Browse the repository at this point in the history
* CI: Add conda-forge based builds

See #477 for more details.
 
In a nutshell conda is a package manager (originally for Python, but now quite language agnostic) that works on Linux, macOS and Windows. `conda-forge`  is a channel for the conda package manager that provides many dependency, in particular all the one that are required by the robotology-superbuild .
  • Loading branch information
traversaro authored Oct 12, 2020
1 parent 1e4e775 commit 6a6098d
Showing 1 changed file with 58 additions and 0 deletions.
58 changes: 58 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,64 @@ on:


jobs:
conda-build:
name: '[conda:Tags:${{ matrix.project_tags }}@${{ matrix.os }}@${{ matrix.build_type }}]'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
build_type: [Release]
# Windows is disabled due to the missing ipopt package
# macOS is disabled due to the missing freeglut package
os: [ubuntu-latest]
cmake_generator:
- "Ninja"
project_tags:
- Default
- Unstable
include:
- project_tags: Default
project_tags_cmake_options: ""
- project_tags: Unstable
project_tags_cmake_options: "-DROBOTOLOGY_PROJECT_TAGS=Unstable"

steps:
- uses: actions/checkout@v2

- uses: conda-incubator/setup-miniconda@v1
with:
auto-update-conda: true

- name: Dependencies [Conda]
shell: bash -l {0}
run: |
# Compilation related dependencies
conda install -c conda-forge cmake compilers make ninja pkg-config
# Actual dependencies
conda install -c conda-forge ace asio boost eigen freeglut gazebo glew glfw gsl ipopt libjpeg-turbo libmatio libode libxml2 opencv pkg-config portaudio qt sdl sdl2 sqlite tinyxml
# Additional dependencies useful only on Linux
- name: Dependencies [Conda/Linux]
shell: bash -l {0}
run: |
# Additional dependencies only useful on Linux
# See https://github.com/robotology/robotology-superbuild/issues/477
conda install -c conda-forge expat-cos6-x86_64 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 mesalib mesa-libgl-cos6-x86_64
- name: Configure [Conda]
# ROBOTOLOGY_ENABLE_ICUB_HEAD is disabled due to https://github.com/robotology/icub-main/issues/685
shell: bash -l {0}
run: |
mkdir -p build
cd build
cmake -G"${{ matrix.cmake_generator }}" -DROBOTOLOGY_USES_GAZEBO:BOOL=ON -DROBOTOLOGY_USES_OCTAVE:BOOL=OFF -DROBOTOLOGY_USES_PYTHON:BOOL=OFF -DROBOTOLOGY_ENABLE_ROBOT_TESTING:BOOL=ON -DROBOTOLOGY_ENABLE_DYNAMICS:BOOL=ON -DROBOTOLOGY_ENABLE_HUMAN_DYNAMICS:BOOL=ON -DROBOTOLOGY_ENABLE_ICUB_HEAD:BOOL=OFF -DROBOTOLOGY_ENABLE_ICUB_BASIC_DEMOS:BOOL=ON -DROBOTOLOGY_ENABLE_TELEOPERATION:BOOL=ON -DNON_INTERACTIVE_BUILD:BOOL=TRUE -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} ${{ matrix.project_tags_cmake_options }} ..
- name: Build [Conda]
shell: bash -l {0}
run: |
cd build
cmake --build . --config ${{ matrix.build_type }}
docker-build:
name: '[docker:Tags:${{ matrix.project_tags }}@${{ matrix.docker_image }}@${{ matrix.build_type }}]'
runs-on: ubuntu-latest
Expand Down

0 comments on commit 6a6098d

Please sign in to comment.