|
name: CI |
|
on: |
|
push: |
|
branches: |
|
- "main" |
|
pull_request: |
|
branches: |
|
- "main" |
|
workflow_dispatch: # allows triggering manually |
|
|
|
concurrency: |
|
group: ${{ github.workflow }}-${{ github.ref }} |
|
cancel-in-progress: true |
|
|
|
jobs: |
|
detect-ci-trigger: |
|
name: detect ci trigger |
|
runs-on: ubuntu-latest |
|
if: | |
|
github.repository == 'xarray-contrib/xarray-array-testing' |
|
&& (github.event_name == 'push' || github.event_name == 'pull_request') |
|
&& !contains(github.event.pull_request.labels.*.name, 'skip-ci') |
|
outputs: |
|
triggered: ${{ steps.detect-trigger.outputs.trigger-found }} |
|
steps: |
|
- uses: actions/checkout@v6 |
|
with: |
|
fetch-depth: 2 |
|
|
|
- uses: xarray-contrib/ci-trigger@v1 |
|
id: detect-trigger |
|
with: |
|
keyword: "[skip-ci]" |
|
|
|
test: |
|
name: ${{ matrix.os }} py${{ matrix.python-version }} |
|
runs-on: ${{ matrix.os }} |
|
needs: detect-ci-trigger |
|
if: needs.detect-ci-trigger.outputs.triggered == 'false' |
|
|
|
env: |
|
FORCE_COLOR: 3 |
|
CONDA_ENV_FILE: "ci/requirements/environment.yaml" |
|
defaults: |
|
run: |
|
shell: bash -l {0} |
|
|
|
strategy: |
|
fail-fast: false |
|
matrix: |
|
os: ["ubuntu-latest", "macos-latest", "windows-latest"] |
|
python-version: ["3.11", "3.13"] |
|
|
|
steps: |
|
- uses: actions/checkout@v6 |
|
with: |
|
fetch-depth: 0 |
|
|
|
- name: Setup micromamba |
|
uses: mamba-org/setup-micromamba@v2 |
|
with: |
|
environment-file: ci/requirements/environment.yaml |
|
environment-name: tests |
|
cache-environment: true |
|
cache-environment-key: "${{runner.os}}-${{runner.arch}}-py${{matrix.python-version}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}" |
|
create-args: >- |
|
python=${{matrix.python-version}} |
|
|
|
- name: Install nightly xarray |
|
run: | |
|
python -m pip install --upgrade --pre -i https://pypi.anaconda.org/scientific-python-nightly-wheels/simple xarray |
|
|
|
- name: Install xarray-array-testing |
|
run: | |
|
python -m pip install --no-deps -e . |
|
|
|
- name: Import xarray-array-testing |
|
run: | |
|
python -c 'import xarray_array_testing' |
|
|
|
- name: Restore cached hypothesis directory |
|
uses: actions/cache/restore@v5 |
|
with: |
|
path: .hypothesis/ |
|
key: cache-hypothesis |
|
|
|
- name: Run tests |
|
run: | |
|
python -m pytest --cov=xarray_array_testing |
|
|
|
- name: Cache hypothesis directory |
|
uses: actions/cache/save@v5 |
|
with: |
|
path: .hypothesis/ |
|
key: cache-hypothesis |