fix/improve CI #8
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: CI | |
on: | |
push: | |
branches: | |
- "*" | |
- "!v[0-9]+.[0-9]+.[0-9]+*" | |
pull_request: | |
branches: | |
- "*" | |
- "!v[0-9]+.[0-9]+.[0-9]+*" | |
workflow_dispatch: | |
inputs: | |
debug_enabled: | |
type: boolean | |
description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)' | |
required: false | |
default: false | |
jobs: | |
pyprms_setup: | |
name: standard installation | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10" | |
- name: Upgrade pip and install build and twine | |
run: | | |
python -m pip install --upgrade pip | |
pip install wheel build 'twine<5.0.0' 'importlib_metadata<=7.0.1' 'setuptools<=72.2.0' 'numpy<2.0' | |
- name: Base installation | |
run: | | |
pip --verbose install . | |
- name: Print pyPRMS version | |
run: | | |
python -c "import pyPRMS; print(pyPRMS.__version__)" | |
- name: Build pyPRMS, check dist outputs | |
run: | | |
python -m build | |
twine check --strict dist/* | |
# pyws_lint: | |
# name: linting | |
# runs-on: ubuntu-latest | |
# strategy: | |
# fail-fast: false | |
# defaults: | |
# run: | |
# shell: bash | |
# steps: | |
# - name: Checkout repo | |
# uses: actions/checkout@v4 | |
# - name: Setup Python | |
# uses: actions/setup-python@v5 | |
# with: | |
# python-version: "3.10" | |
# - name: Install dependencies | |
# run: | | |
# pip install wheel | |
# pip install . | |
# pip install ".[lint]" | |
# - name: Version info | |
# run: | | |
# pip -V | |
# pip list | |
# - name: Lint | |
# run: ruff check . | |
# - name: Format | |
# run: ruff format --check . | |
test: | |
name: ${{ matrix.os }} py${{ matrix.python-version }} | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash -l {0} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ "ubuntu-latest", "macos-latest", "windows-latest" ] | |
python-version: ["3.10", "3.11"] | |
steps: | |
- name: Free Disk Space (Ubuntu) | |
if: runner.os == 'Linux' | |
uses: jlumbroso/free-disk-space@main | |
with: | |
tool-cache: false | |
android: true | |
dotnet: true | |
haskell: true | |
large-packages: true | |
docker-images: true | |
swap-storage: true | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{matrix.python-version}} | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Install pyPRMS | |
run: | | |
pip install .'[dev]' | |
- name: Version info | |
run: | | |
pip -V | |
pip list | |
- name: Test suite | |
working-directory: tests | |
run: coverage run -m pytest -v -s | |
- name: Coverage report | |
working-directory: tests | |
run: coverage report -m | |
# - name: Upload test results | |
# if: always() | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: Test results for ${{ runner.os }}-${{ matrix.python-version }} | |
# path: | | |
# ./autotest/pytest_hru_1_nhm.xml | |
# ./autotest/pytest_drb_2yr_nhm.xml | |
# ./autotest/pytest_drb_2yr_no_dprst.xml | |
# ./autotest/pytest_ucb_2yr_nhm.xml | |
# - name: Upload code coverage to Codecov | |
# uses: codecov/codecov-action@v3 | |
# with: | |
# file: ./autotest/coverage.xml # should be just the ucb result | |
# # flags: unittests | |
# env_vars: RUNNER_OS,PYTHON_VERSION | |
# # name: codecov-umbrella | |
# fail_ci_if_error: false | |
# version: "v0.1.15" |