Skip to content

migrate the CI setup to pixi #622

migrate the CI setup to pixi

migrate the CI setup to pixi #622

Workflow file for this run

# adapted from xarray's ci
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
detect-skip-ci-trigger:
name: "Detect CI Trigger: [skip-ci]"
if: github.event_name == 'push' || github.event_name == 'pull_request'
runs-on: ubuntu-latest
outputs:
triggered: ${{ steps.detect-trigger.outputs.trigger-found }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- uses: xarray-contrib/ci-trigger@v1
id: detect-trigger
with:
keyword: "[skip-ci]"
ci:
name: ${{ matrix.os }} py${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
needs: detect-skip-ci-trigger
defaults:
run:
shell: bash -l {0}
env:
FORCE_COLOR: 3
if: |
always()
&& github.repository == 'xarray-contrib/pint-xarray'
&& (
github.event_name == 'workflow_dispatch'
|| needs.detect-skip-ci-trigger.outputs.triggered == 'false'
)
strategy:
fail-fast: false
matrix:
env: ["tests-py311", "tests-py312", "tests-py313"]
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
steps:
- name: checkout the repository
uses: actions/checkout@v4
with:
# need to fetch all tags to get a correct version
fetch-depth: 0 # fetch all branches and tags
- name: setup environment
uses: prefix-dev/setup-pixi@8ca4608ef7f4daeb54f5205b20d0b7cb42f11143 # 0.8.14
with:
environments: "${{ matrix.env }}"
- name: import pint-xarray
run: |
pixi run -e ${{ matrix.env }} python -c 'import pint_xarray'
- name: run tests
if: success()
id: status
run: |
pixi run -e ${{ matrix.env }} tests --cov-report=xml
- name: Upload code coverage to Codecov
uses: codecov/[email protected]
with:
file: ./coverage.xml
flags: unittests
env_vars: RUNNER_OS,PYTHON_VERSION
name: codecov-umbrella
fail_ci_if_error: false