diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..9ce0b8c --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,95 @@ +name: CI +on: + workflow_dispatch: + push: + branches: + - master + pull_request: + branches: + - master + +defaults: + run: + shell: bash -l {0} + +jobs: + unix: + + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: false + matrix: + os: [ubuntu-20.04, ubuntu-22.04, macos-13, macos-14] + + steps: + - uses: actions/checkout@v4 + + - name: Get number of CPU cores + uses: SimenB/github-actions-cpu-cores@v2 + + - name: Install mamba + uses: mamba-org/setup-micromamba@v1 + with: + environment-file: environment-dev.yml + + - name: Make build directory + run: mkdir build + + - name: Configure CMake + run: | + cmake .. \ + -DCMAKE_PREFIX_PATH=$CONDA_PREFIX \ + -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX \ + -DDOWNLOAD_GTEST=ON \ + -DCMAKE_INSTALL_LIBDIR=lib + working-directory: build + + - name: Build + run: make -j ${{ steps.cpu-cores.outputs.count }} + working-directory: build + + - name: Test xeus-calc + run: ./test_xeus_calc + working-directory: build/test + + win: + + runs-on: ${{ matrix.os }} + defaults: + run: + shell: cmd /C call {0} + + strategy: + fail-fast: false + matrix: + os: [ windows-2019, windows-2022 ] + + steps: + - uses: actions/checkout@v4 + + - name: Install mamba + uses: mamba-org/setup-micromamba@v1 + with: + environment-file: environment-dev.yml + init-shell: cmd.exe + + - name: Make build directory + run: mkdir build + + - name: Configure cmake + run: | + cmake .. ^ + -G Ninja ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DDOWNLOAD_GTEST=ON ^ + -DDEPENDENCY_SEARCH_PREFIX="%CONDA_PREFIX%\Library" ^ + -DCMAKE_PREFIX_PATH="%CONDA_PREFIX%\Library" ^ + -DCMAKE_INSTALL_PREFIX="%CONDA_PREFIX%" + working-directory: build + + - name: Build + run: | + set CL=/MP + ninja install + working-directory: build