File: ci-additional.yaml

package info (click to toggle)
flox 0.11.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 3,796 kB
  • sloc: python: 8,578; makefile: 154
file content (113 lines) | stat: -rw-r--r-- 3,070 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
name: CI Additional
on:
  push:
    branches:
      - "main"
  pull_request:
    branches:
      - "*"
  workflow_dispatch: # allows you to trigger 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/flox'
      && (github.event_name == 'push' || github.event_name == 'pull_request')
    outputs:
      triggered: ${{ steps.detect-trigger.outputs.trigger-found }}
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 2
      - uses: xarray-contrib/ci-trigger@v1.2
        id: detect-trigger
        with:
          keyword: "[skip-ci]"

  doctest:
    name: Doctests
    runs-on: "ubuntu-latest"
    needs: detect-ci-trigger
    if: needs.detect-ci-trigger.outputs.triggered == 'false'
    env:
      PYTHON_VERSION: "3.14"

    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 0 # Fetch all history for all branches and tags.

      - name: Set up Python and uv
        uses: astral-sh/setup-uv@v7
        with:
          python-version: ${{ env.PYTHON_VERSION }}
          enable-cache: true
          cache-dependency-glob: "pyproject.toml"

      - name: Install dependencies
        run: |
          uv sync --group complete --no-dev
      - name: Version info
        run: |
          uv pip list
      - name: Run doctests
        run: |
          uv run --no-dev python -m pytest --doctest-modules \
          flox/aggregations.py flox/core.py flox/xarray.py \
          --ignore flox/tests \
          --cov=./ --cov-report=xml
      - name: Upload code coverage to Codecov
        uses: codecov/codecov-action@v5.5.2
        with:
          file: ./coverage.xml
          flags: unittests
          env_vars: RUNNER_OS
          name: codecov-umbrella
          fail_ci_if_error: false

  mypy:
    name: Mypy
    runs-on: "ubuntu-latest"
    needs: detect-ci-trigger
    if: needs.detect-ci-trigger.outputs.triggered == 'false'
    env:
      PYTHON_VERSION: "3.14"

    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 0 # Fetch all history for all branches and tags.

      - name: Set up Python and uv
        uses: astral-sh/setup-uv@v7
        with:
          python-version: ${{ env.PYTHON_VERSION }}
          enable-cache: true
          cache-dependency-glob: "pyproject.toml"

      - name: Install dependencies
        run: |
          uv sync --group complete --no-dev --group types
      - name: Version info
        run: |
          uv pip list

      - name: Run mypy
        run: |
          mkdir .mypy_cache
          uv run --no-dev mypy --cache-dir=.mypy_cache/ --cobertura-xml-report mypy_report

      - name: Upload mypy coverage to Codecov
        uses: codecov/codecov-action@v5.5.2
        with:
          file: mypy_report/cobertura.xml
          flags: mypy
          env_vars: PYTHON_VERSION
          name: codecov-umbrella
          fail_ci_if_error: false