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