Update conda environments, conda package recipe and documentation #159
Workflow file for this run
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
# Run CI tests | |
name: CI | |
# Controls when the action will run. | |
on: | |
# Triggers the workflow on push or pull request events but only for the master branch | |
push: | |
branches: main | |
pull_request: | |
branches: main | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
env: | |
PY_VERSION: "3.11" | |
jobs: | |
# JOB to run change in the build files | |
changes: | |
runs-on: ubuntu-latest | |
# Required permissions | |
permissions: | |
pull-requests: read | |
# Set job outputs to values from filter step | |
outputs: | |
files: ${{ steps.filter.outputs.files }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4.1.7 | |
- name: Filter files | |
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 #v3.0.2 | |
id: filter | |
with: | |
filters: | | |
files: | |
- 'setup.py' | |
- 'pyproject.toml' | |
- '.conda/env_build.yml' | |
- '.conda/meta.yml' | |
verify-conda-build: | |
name: Conda Build | |
runs-on: ubuntu-latest | |
needs: changes | |
# Only run if there are changes in the build files | |
if: ${{ needs.changes.outputs.files == 'true' }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup conda build environment | |
uses: conda-incubator/setup-miniconda@a4260408e20b96e80095f42ff7f1a15b27dd94ca # v3.0.4 | |
with: | |
miniconda-version: "latest" | |
python-version: ${{ env.PY_VERSION }} | |
environment-file: .conda/env_build.yml | |
auto-activate-base: false | |
auto-update-conda: false | |
show-channel-urls: true | |
- name: Verify conda recipe | |
shell: bash -el {0} | |
run: conda-verify .conda --ignore C2105,C2122 | |
- name: Run conda build | |
shell: bash -el {0} | |
run: conda build . --no-anaconda-upload --output-folder=./build -c conda-forge -c accessnri -c coecms | |
- name: Verify conda package | |
shell: bash -el {0} | |
run: conda-verify ./build/noarch/*.tar.bz2 --ignore C1105,C1115,C1141 | |
tests: | |
name: Tests | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
matrix: | |
python-version: ["3.10", "3.11", "3.12"] | |
env: | |
ARTIFACT_LOCATION: ${{ github.workspace }}/conda-local | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4.1.7 | |
- name: Setup conda environment | |
uses: conda-incubator/setup-miniconda@a4260408e20b96e80095f42ff7f1a15b27dd94ca # v3.0.4 | |
with: | |
miniconda-version: "latest" | |
python-version: ${{ matrix.python-version }} | |
environment-file: .conda/env_dev.yml | |
activate-environment: um2nc-dev | |
auto-update-conda: false | |
auto-activate-base: false | |
show-channel-urls: true | |
- name: Install source | |
shell: bash -l {0} | |
run: python3 -m pip install --no-deps --no-build-isolation -e . | |
- name: List installed packages | |
shell: bash -l {0} | |
run: conda list | |
- name: Lint | |
shell: bash -l {0} | |
run: pylint --extension-pkg-whitelist=netCDF4 --ignored-modules=umpost -E umpost | |
- name: Entrypoint test of driver script | |
shell: bash -l {0} | |
run: esm1p5_convert_nc --help | |
- name: Entrypoint test of um2netcdf script | |
shell: bash -l {0} | |
run: um2nc --help | |
- name: Run tests | |
shell: bash -l {0} | |
run: python -m pytest --cov=umpost --cov-report=xml -s test | |
- name: Upload code coverage | |
# Only upload once for the installed version | |
if: matrix.python-version == ${{ env.PY_VERSION }} | |
uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 #v4.6.0 | |
with: | |
token: ${{ secrets.codecov_token }} | |
files: ./coverage.xml |