Skip to content

Add JAX implementation of REGCOIL algorithm and Add Ability to Discretize Current Potentials into Coilsets #115

Add JAX implementation of REGCOIL algorithm and Add Ability to Discretize Current Potentials into Coilsets

Add JAX implementation of REGCOIL algorithm and Add Ability to Discretize Current Potentials into Coilsets #115

name: Regression tests
on:
push:
branches:
- master
- dev
pull_request:
branches:
- master
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
regression_tests:
runs-on: ubuntu-latest
env:
GH_TOKEN: ${{ github.token }}
strategy:
matrix:
python-version: ['3.10']
group: [1, 2, 3, 4, 5, 6]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Restore Python environment cache
id: restore-env
uses: actions/cache/restore@v4
with:
path: .venv-${{ matrix.python-version }}
key: ${{ runner.os }}-venv-${{ matrix.python-version }}-${{ hashFiles('devtools/dev-requirements.txt', 'requirements.txt') }}
- name: Set up virtual environment if not restored from cache
if: steps.restore-env.outputs.cache-hit != 'true'
run: |
gh cache list
python -m venv .venv-${{ matrix.python-version }}
source .venv-${{ matrix.python-version }}/bin/activate
python -m pip install --upgrade pip
pip install -r devtools/dev-requirements.txt
pip install matplotlib==3.7.2
- name: Set Swap Space
uses: pierotofy/set-swap-space@master
with:
swap-size-gb: 10
- name: Test with pytest
run: |
source .venv-${{ matrix.python-version }}/bin/activate
pip install matplotlib==3.7.2
pwd
lscpu
python -m pytest -v -m regression\
--durations=0 \
--cov-report xml:cov.xml \
--cov-config=setup.cfg \
--cov=desc/ \
--mpl \
--mpl-results-path=mpl_results.html \
--mpl-generate-summary=html \
--splits 6 \
--group ${{ matrix.group }} \
--splitting-algorithm least_duration \
--db ./prof.db
- name: save coverage file and plot comparison results
if: always()
uses: actions/upload-artifact@v4
with:
name: regression_test_artifact-${{ matrix.python-version }}-${{ matrix.group }}
path: |
./cov.xml
./mpl_results.html
./prof.db
- name: Upload coverage
id : codecov
uses: Wandalen/[email protected]
with:
action: codecov/codecov-action@v3
with: |
token: ${{ secrets.CODECOV_TOKEN }}
name: codecov-umbrella
files: ./cov.xml
fail_ci_if_error: true
verbose: true
attempt_limit: 10
attempt_delay: 60000 # ms, 1 min