File: ci.yml

package info (click to toggle)
ndcube 2.4.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,356 kB
  • sloc: python: 9,335; makefile: 34
file content (131 lines) | stat: -rw-r--r-- 3,589 bytes parent folder | download
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# Main CI Workflow
name: CI

on:
  push:
    branches:
      - 'main'
      - '*.*'
      - '!*backport*'
    tags:
      - 'v*'
      - '!*dev*'
      - '!*pre*'
      - '!*post*'
  pull_request:
  # Allow manual runs through the web UI
  workflow_dispatch:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  core:
    uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@v2
    with:
      submodules: false
      coverage: codecov
      toxdeps: tox-pypi-filter
      envs: |
        - linux: py313-minimal
    secrets:
      CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

  sdist_verify:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-python@v6
        with:
          python-version: '3.13'
      - run: python -m pip install -U --user build
      - run: python -m build . --sdist
      - run: python -m pip install -U --user twine
      - run: python -m twine check dist/*

  test:
    needs: [core, sdist_verify]
    uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@v2
    with:
      submodules: false
      coverage: codecov
      toxdeps: tox-pypi-filter
      posargs: -n auto
      envs: |
        - linux: py314
        - windows: py312
        - macos: py312
        - linux: py311-oldestdeps
        - linux: asdf_schemas
    secrets:
      CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

  docs:
    needs: [core]
    uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@v2
    with:
      default_python: '3.13'
      submodules: false
      pytest: false
      toxdeps: tox-pypi-filter
      libraries: |
        apt:
          - graphviz
      envs: |
        - linux: build_docs
          posargs: ''
          pytest: false
          libraries:
            apt:
              - libopenjp2-7
              - graphviz

  cron:
    if: |
      github.event_name == 'workflow_dispatch' || (
        github.event_name == 'pull_request' &&
        contains(github.event.pull_request.labels.*.name, 'Run cron CI')
      )
    uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@v1
    with:
      default_python: '3.13'
      submodules: false
      coverage: codecov
      toxdeps: tox-pypi-filter
      envs: |
        - linux: py314-devdeps
    secrets:
      CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

  publish:
    # Build wheels on PRs only when labelled. Releases will only be published if tagged ^v.*
    # see https://github-actions-workflows.openastronomy.org/en/latest/publish.html#upload-to-pypi
    if: |
      github.event_name != 'pull_request' ||
      (
        github.event_name == 'pull_request' &&
        contains(github.event.pull_request.labels.*.name, 'Run publish')
      )
    needs: [test, docs]
    uses: OpenAstronomy/github-actions-workflows/.github/workflows/publish_pure_python.yml@v2
    with:
      python-version: '3.13'
      test_extras: 'all,tests'
      test_command: 'pytest -p no:warnings --doctest-rst --pyargs ndcube'
      submodules: false
    secrets:
      pypi_token: ${{ secrets.pypi_token }}

  notify:
    if: always() && github.event_name == 'workflow_dispatch'
    needs: [publish, cron]
    runs-on: ubuntu-latest
    steps:
      - uses: Cadair/matrix-notify-action@main
        with:
          matrix_token: ${{ secrets.matrix_access_token }}
          github_token: ${{ secrets.GITHUB_TOKEN }}
          homeserver: ${{ secrets.matrix_homeserver }}
          roomid: '!TWSJXVpyflnZOzmSQz:matrix.org'
          ignore_pattern: '.*Load tox.*'