From 3c0769415b6c96d9264b7699a0c73671b811b1cb Mon Sep 17 00:00:00 2001 From: Fabian Schramm <55981657+fabinsch@users.noreply.github.com> Date: Sat, 19 Nov 2022 11:33:23 +0100 Subject: [PATCH] start ci with github actions for linux and osx using conda --- .github/workflows/ci-linux-osx-conda.yml | 98 ++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 .github/workflows/ci-linux-osx-conda.yml diff --git a/.github/workflows/ci-linux-osx-conda.yml b/.github/workflows/ci-linux-osx-conda.yml new file mode 100644 index 0000000..53ff22f --- /dev/null +++ b/.github/workflows/ci-linux-osx-conda.yml @@ -0,0 +1,98 @@ +name: CI - Linux/OSX - Conda + +on: + push: + pull_request: + +jobs: + build-with-conda: + name: '[conda:${{ matrix.os }}:${{ matrix.build_type }}]' + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: false + matrix: + build_type: [Release, Debug] + name: [ubuntu-latest, macos-latest] + + steps: + - uses: actions/checkout@v2 + + - uses: conda-incubator/setup-miniconda@v2 + with: + miniforge-variant: Mambaforge + miniforge-version: latest + channels: conda-forge + python-version: "3.10" + activate-environment: tsid + + - name: Install dependencies [Conda] + shell: bash -l {0} + run: | + # Workaround for https://github.com/conda-incubator/setup-miniconda/issues/186 + conda config --remove channels defaults + # Compilation related dependencies + mamba install cmake compilers make pkg-config doxygen ninja graphviz + # Main dependencies + mamba install tsid --only-deps + mamba install proxsuite osqp-eigen + + - name: Activate ccache [Conda] + uses: hendrikmuhs/ccache-action@v1.2 + with: + key: ${{ matrix.os }}-${{ matrix.type }}-${{ matrix.cxx_std }} + max-size: 1G + + - name: Print environment [Conda] + shell: bash -l {0} + run: | + conda info + mamba list + env + + - name: Configure [Conda] + shell: bash -l {0} + run: | + echo $(whereis ccache) + echo $(which ccache) + git submodule update --init + mkdir build + cd build + cmake .. -GNinja -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_STANDARD=${{ matrix.cxx_std }} -DCMAKE_INSTALL_PREFIX=${CONDA_PREFIX} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DBUILD_PYTHON_INTERFACE:BOOL=ON -DPYTHON_EXECUTABLE=$(which python3) -DINSTALL_DOCUMENTATION:BOOL=ON -DBUILD_WITH_PROXQP:BOOL=ON -DBUILD_WITH_OSQP:BOOL=ON + + - name: Build [Conda] + shell: bash -l {0} + run: | + cd build + cmake --build . --config ${{ matrix.build_type }} -v + + - name: Build documentation [Conda] + shell: bash -l {0} + run: | + cd build + cmake --build . --config ${{ matrix.build_type }} --target doc + + - name: Install [Conda] + shell: bash -l {0} + run: | + cd build + cmake --install . --config ${{ matrix.build_type }} + + - name: Test [Conda] + shell: bash -l {0} + run: | + find $CONDA_PREFIX -name tsid* + python -c "import tsid" + cd build + ctest --output-on-failure -C ${{ matrix.build_type }} + + - name: Uninstall [Conda] + shell: bash -l {0} + run: | + cd build + cmake --build . --config ${{ matrix.build_type }} --target uninstall + + - name: Display ccache statistics [Conda] + shell: bash -l {0} + run: | + echo $(ccache -s) \ No newline at end of file -- GitLab