From b08bed2a679648acd46c6e68145361af36a30c11 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Wed, 19 May 2021 09:00:02 +0200 Subject: [PATCH 1/5] Add conda-based Continuous Integration job --- .github/workflows/conda-ci.yml | 62 ++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 .github/workflows/conda-ci.yml diff --git a/.github/workflows/conda-ci.yml b/.github/workflows/conda-ci.yml new file mode 100644 index 00000000..b4b2b94a --- /dev/null +++ b/.github/workflows/conda-ci.yml @@ -0,0 +1,62 @@ +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 blockfactory idyntree osqp-eigen qpoases yarp + + - name: Dependencies [Windows] + if: contains(matrix.os, 'windows') + shell: bash -l {0} + run: | + # Let Ninja use VS2019 (available in GitHub Action) by default + mamba install vs2019_win-64 + + - name: Configure + shell: bash -l {0} + run: | + mkdir -p build + cd build + cmake -GNinja -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 }} From 9150dccf9440e2c3efbbbf2b2066777180b2af12 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Wed, 19 May 2021 09:04:55 +0200 Subject: [PATCH 2/5] Update conda-ci.yml --- .github/workflows/conda-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/conda-ci.yml b/.github/workflows/conda-ci.yml index b4b2b94a..ea98dea0 100644 --- a/.github/workflows/conda-ci.yml +++ b/.github/workflows/conda-ci.yml @@ -33,7 +33,7 @@ jobs: # Compilation related dependencies mamba install cmake compilers ninja pkg-config # Actual dependencies - mamba install blockfactory idyntree osqp-eigen qpoases yarp + mamba install eigen blockfactory idyntree osqp-eigen qpoases yarp - name: Dependencies [Windows] if: contains(matrix.os, 'windows') From 1f97bc1264f48ef34ed86b64892ca3659bf3fc11 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Wed, 19 May 2021 09:13:25 +0200 Subject: [PATCH 3/5] Update conda-ci.yml --- .github/workflows/conda-ci.yml | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/.github/workflows/conda-ci.yml b/.github/workflows/conda-ci.yml index ea98dea0..034bc506 100644 --- a/.github/workflows/conda-ci.yml +++ b/.github/workflows/conda-ci.yml @@ -35,19 +35,29 @@ jobs: # Actual dependencies mamba install eigen blockfactory idyntree osqp-eigen qpoases yarp - - name: Dependencies [Windows] - if: contains(matrix.os, 'windows') + - name: Dependencies shell: bash -l {0} run: | - # Let Ninja use VS2019 (available in GitHub Action) by default - mamba install vs2019_win-64 + # Compilation related dependencies + mamba install cmake compilers ninja pkg-config + # Actual dependencies + mamba install eigen blockfactory idyntree osqp-eigen qpoases yarp - - name: Configure + - 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} From 0b072ae65570c79c0ed8b136b72ac7e75958ba74 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Wed, 19 May 2021 12:46:47 +0200 Subject: [PATCH 4/5] Update conda-ci.yml --- .github/workflows/conda-ci.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/conda-ci.yml b/.github/workflows/conda-ci.yml index 034bc506..2f3bb122 100644 --- a/.github/workflows/conda-ci.yml +++ b/.github/workflows/conda-ci.yml @@ -27,14 +27,6 @@ jobs: 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: Dependencies shell: bash -l {0} run: | From 9482d4065e92ad6cf71362857474601bd9c7a1de Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Wed, 19 May 2021 12:49:12 +0200 Subject: [PATCH 5/5] Delete ci.yml --- .github/workflows/ci.yml | 70 ---------------------------------------- 1 file changed, 70 deletions(-) delete mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 068dd64f..00000000 --- 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