diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eb24fd375..38dc785ca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,6 +17,61 @@ on: jobs: + conda-build: + name: '[conda:Tags:${{ matrix.project_tags }}@${{ matrix.os }}@${{ matrix.build_type }}]' + # Windows is disabled due to the missing ipopt package + runs-on: [ubuntu-latest, macos-latest] + strategy: + fail-fast: false + matrix: + build_type: [Release] + 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 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 libxdamage-cos6-x86_64 libxfixes-cos6-x86_64 libxxf86vm-cos6-x86_64 mesalib + + - name: Configure [Conda] + # ROBOTOLOGY_ENABLE_ICUB_HEAD is disabled due to https://github.com/robotology/icub-main/issues/685 + shell: bash + 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] + 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