Merge pull request #214 from NCAS-CMS/pre-commit-ci-update-config #912
This file contains hidden or 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 will install Python dependencies, run tests and lint with a variety of Python versions | |
| # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
| name: Pyfive Test | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| schedule: | |
| - cron: '0 0 * * *' # nightly | |
| # Required shell entrypoint to have properly configured bash shell | |
| defaults: | |
| run: | |
| shell: bash -l {0} | |
| jobs: | |
| build: | |
| name: Test Python ${{ matrix.python-version }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - uses: conda-incubator/setup-miniconda@v3 | |
| with: | |
| activate-environment: pyfive | |
| environment-file: environment.yml | |
| python-version: ${{ matrix.python-version }} | |
| miniforge-version: "latest" | |
| use-mamba: true | |
| - name: Install Pyfive Test Mode | |
| run: | | |
| mamba install -c conda-forge pip | |
| pip install -e .[test] | |
| - name: Run pip check | |
| run: pip check | |
| - name: Run pre-commit with mypy | |
| run: | | |
| pre-commit install | |
| pre-commit run -a | |
| # we run pre-commit with ruff and mypy, so this is now redundant | |
| # keeping it commented out for now, in case we ever need to come back using it | |
| # - name: Lint with flake8 | |
| # run: | | |
| # # stop the build if there are Python syntax errors or undefined names | |
| # flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics | |
| # # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide | |
| # flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics | |
| - name: Check environment contents | |
| run: | | |
| conda list | |
| pip list | |
| - name: Test p5dump | |
| run: | | |
| which p5dump | |
| p5dump tests/data/groups.hdf5 | |
| p5dump tests/data/issue23_A.nc | |
| - name: Test with pytest | |
| run: | | |
| # pytest tries to split test_threadsafe_data_access.py | |
| # and that can not be run with eg pytest -n N | |
| pytest --cov --cov-branch --cov-report=xml | |
| - uses: codecov/codecov-action@v5 |