Skip to content

Test

Test #3081

Workflow file for this run

---
name: Test
permissions: {}
# runs on a push on main and at the end of every day
on:
push:
branches:
- main
schedule:
- cron: "0 0 * * *"
# Required shell entrypoint to have properly configured bash shell
defaults:
run:
shell: pixi run bash -e {0}
jobs:
test:
runs-on: ${{ matrix.os }}
if: github.repository == 'ESMValGroup/ESMValTool' # avoid GAs in forks
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
environment:
- test-py312
- test-py313
- test-py314
name: ${{ matrix.os }} ${{ matrix.environment }}
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
fetch-depth: 0
persist-credentials: false
- uses: prefix-dev/setup-pixi@5185adfbffb4bd703da3010310260805d89ebb11 # v0.9.6
with:
frozen: true
environments: ${{ matrix.environment }}
- name: Check dependencies are compatible
run: pip check
- name: Check code quality
run: pre-commit run -a
- name: Run tests
run: pytest -n 2 -m "not installation"
- name: Upload artifacts
if: ${{ always() }} # upload artifacts even if fail
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: Test_reports_${{ matrix.os }}_${{ matrix.environment }}
path: test-reports
- name: Check the command line interface
run: |
esmvaltool version
esmvaltool -- --help
esmvaltool develop compare -- --help