diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 068dd64f9..000000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,70 +0,0 @@ -name: CI - -on: - push: - pull_request: - -jobs: - - ci: - name: '${{ matrix.os }}' - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: - - ubuntu-latest - - macos-latest - - steps: - - - uses: actions/checkout@master - - run: git fetch --prune --unshallow - - - name: 'Ubuntu: System Dependencies' - if: matrix.os == 'ubuntu-latest' - run: | - sudo apt-get update - sudo apt-get install -y --no-install-recommends \ - libace-dev libeigen3-dev libgsl-dev libedit-dev \ - python3-numpy libxml2-dev coinor-libipopt-dev \ - ninja-build - - - name: 'MacOS: System Dependencies' - if: matrix.os == 'macos-latest' - run: brew install ace assimp eigen tinyxml gsl ipopt ninja - - - name: Setup dependencies branch [master] - if: | - github.ref == 'refs/heads/master' || - (github.event_name == 'pull_request' && github.event.pull_request.head.ref == 'refs/heads/master') - run: echo "DEPS_BRANCH=master" >> $GITHUB_ENV - - - name: Setup dependencies branch [other] - if: | - (github.event_name == 'push' && github.ref != 'refs/heads/master') || - (github.event_name == 'pull_request' && github.event.pull_request.head.ref != 'refs/heads/master') - run: echo "DEPS_BRANCH=devel" >> $GITHUB_ENV - - - name: Install dependencies - run: | - export DEPS_CACHE=$HOME/deps - export PATH=$PATH:$DEPS_CACHE/bin - export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:$DEPS_CACHE - ./.ci/install.sh || false - env: - CMAKE_GENERATOR: Ninja - CMAKE_BUILD_TYPE: Debug - - - name: Build - run: | - export DEPS_CACHE=$HOME/deps - export PATH=$PATH:$DEPS_CACHE/bin - export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:$DEPS_CACHE - mkdir build && cd build - cmake ..\ - -G"$CMAKE_GENERATOR" \ - -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE - cmake --build . --config $CMAKE_BUILD_TYPE - env: - CMAKE_GENERATOR: Ninja - CMAKE_BUILD_TYPE: Debug diff --git a/.github/workflows/conda-ci.yml b/.github/workflows/conda-ci.yml new file mode 100644 index 000000000..2f3bb122d --- /dev/null +++ b/.github/workflows/conda-ci.yml @@ -0,0 +1,64 @@ +name: C++ CI Workflow with dependencies installed via conda + +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-latest, macOS-latest] + fail-fast: false + + steps: + - uses: actions/checkout@v2 + + - uses: conda-incubator/setup-miniconda@v2 + with: + mamba-version: "*" + channels: conda-forge,robotology + channel-priority: true + + - name: Dependencies + shell: bash -l {0} + run: | + # Compilation related dependencies + mamba install cmake compilers ninja pkg-config + # Actual dependencies + mamba install eigen blockfactory idyntree osqp-eigen qpoases yarp + + - name: Configure [Linux&macOS] + if: contains(matrix.os, 'macos') || contains(matrix.os, 'ubuntu') + shell: bash -l {0} + run: | + mkdir -p build + cd build + cmake -GNinja -DBUILD_TESTING:BOOL=ON -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" -DBUILD_TESTING:BOOL=ON -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} .. + + - name: Build + shell: bash -l {0} + run: | + cd build + cmake --build . --config ${{ matrix.build_type }} + + - name: Test + shell: bash -l {0} + run: | + cd build + ctest --output-on-failure -C ${{ matrix.build_type }}