Speedup with Cython #524
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
name: Test | |
on: | |
push: | |
branches: [ master ] | |
paths: | |
- test/* | |
- src/fiat/* | |
- .testdata/* | |
- pyproject.toml | |
- .github/workflows/test.yml | |
pull_request: | |
branches: [ master ] | |
paths: | |
- test/* | |
- src/fiat/* | |
- .testdata/* | |
- pyproject.toml | |
- .github/workflows/test.yml | |
jobs: | |
Test: | |
defaults: | |
run: | |
shell: bash -l {0} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["ubuntu-latest"] | |
python-version: ["3.10", "3.11", "3.12"] | |
include: | |
- os: ubuntu-latest | |
label: linux-64 | |
prefix: /home/runner/miniconda3/envs/fiat_test | |
name: ${{ matrix.label }} - py${{ matrix.python-version }} | |
runs-on: ${{ matrix.os }} | |
concurrency: | |
group: ${{ github.workflow }}-${{ matrix.python-version }}-${{ github.ref }} | |
cancel-in-progress: true | |
steps: | |
- name: Check-out source | |
uses: actions/checkout@v4 | |
- name: Generate env yaml | |
run: pip install tomli && python make_env.py test -p ${{ matrix.python-version }}.* | |
- name: load from cache | |
id: cache | |
uses: actions/cache/restore@v4 | |
with: | |
path: | | |
/home/runner/miniconda3 | |
~/pycache | |
# the below two settings mean we'll alway srestore the cache | |
# but the cache hit output can tell us if we have to update afterwards | |
key: test-py${{ matrix.python-version }}-${{ hashFiles('environment.yml') }} | |
restore-keys: | | |
test-py${{ matrix.python-version }} | |
- name: Fail on no cache restore | |
if: steps.cache.outputs.cache-matched-key == '' | |
run: | | |
echo "Failed to restore any cache. exiting..." | |
exit 1 | |
- name: Update environment | |
if: steps.cache.outputs.cache-hit != 'true' | |
run: | | |
export PATH=/home/runner/miniconda3/bin:$PATH | |
mamba env update -n fiat_test -f environment.yml | |
- name: Conda info | |
run: | | |
export PATH=/home/runner/miniconda3/bin:$PATH | |
conda info | |
conda list -n fiat_test | |
- name: Create testdata | |
run: | | |
export PATH=/home/runner/miniconda3/bin:$PATH | |
mamba run -n fiat_test python .testdata/create_test_data.py | |
- name: Build Cython extensions | |
run: | | |
export PATH=/home/runner/miniconda3/bin:$PATH | |
mamba run -n fiat_test python setup.py build_ext | |
- name: Test | |
run: | | |
export PATH=/home/runner/miniconda3/bin:$PATH | |
mamba run -n fiat_test python -m pytest --verbose --cov=fiat --cov-report xml | |
- name: Upload coverage to codecov.io | |
uses: codecov/codecov-action@v4 | |
with: | |
files: ./coverage.xml | |
token: ${{ secrets.CODECOV_TOKEN }} | |
verbose: true |