updated yml file #20
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow builds and tests svZeroDSolver. It is built and tested on | |
# different versions of ubuntu and macOS. | |
name: Build and test | |
on: [push, pull_request] | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-22.04, ubuntu-latest, macos-13, macos-latest] | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
auto-update-conda: true | |
- name: Install ubuntu dependencies | |
if: startsWith(matrix.os, 'ubuntu') | |
run: sudo apt update && sudo apt install build-essential cmake lcov | |
- name: Install svZeroDSolver | |
run: | | |
#export PATH="/usr/share/miniconda/bin:$PATH" | |
#alias conda="$CONDA/bin/conda" | |
conda create -n zerod python=3.11.4 | |
conda run -n zerod pip install -e ".[dev]" | |
- name: Test the build | |
run: | | |
cd tests | |
conda run -n zerod pytest -v --durations=0 | |
- name: Build using CMake | |
run: | | |
mkdir Release | |
cd Release | |
cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_DISTRIBUTION=ON .. | |
make -j2 | |
- name: Test interface | |
run: | | |
cd tests/test_interface | |
mkdir build_tests | |
cd build_tests | |
cmake ../ | |
make -j2 | |
cd test_01 | |
./svZeroD_interface_test01 ../../../../Release ../../test_01/svzerod_3Dcoupling.json | |
cd ../test_02 | |
./svZeroD_interface_test02 ../../../../Release ../../test_02/svzerod_tuned.json | |
- name: Generate code coverage | |
if: startsWith(matrix.os, 'ubuntu-22.04') | |
run: | | |
cd Release | |
cmake -DENABLE_COVERAGE=ON .. | |
make -j2 | |
cd ../tests | |
conda run -n zerod pytest -v --durations=0 --ignore=test_dirgraph.py --coverage | |
cd ../Release | |
make coverage | |
- name: Save coverage report | |
if: startsWith(matrix.os, 'ubuntu-22.04') | |
uses: actions/upload-artifact@v3 | |
with: | |
name: coverage_report | |
path: Release/coverage | |
- name: Upload coverage reports to Codecov | |
if: startsWith(matrix.os, 'ubuntu-22.04') | |
uses: codecov/codecov-action@v4 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
- name: Build installer | |
run: | | |
cd Release | |
cpack | |
cp distribution/svZeroDSolver_* .. | |
- name: Upload installer | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.os }} installer | |
path: svZeroDSolver_* | |
if-no-files-found: error |