File: ci.yml

package info (click to toggle)
sunpy 7.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 12,632 kB
  • sloc: python: 41,887; ansic: 1,720; makefile: 28
file content (177 lines) | stat: -rw-r--r-- 5,157 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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
# 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:
  # Trigger on completion of the scheduled_builds.yml file (only on main)
  workflow_run:
    workflows: [Scheduled build triggerer]

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
      posargs: -n auto --color=yes
      envs: |
        - linux: py313-minimal
    secrets:
      CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

  sdist_verify:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
        with:
          fetch-tags: true
          depth: 0
      - 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]
    uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@v2
    with:
      submodules: false
      coverage: codecov
      toxdeps: tox-pypi-filter
      posargs: -n auto --color=yes
      libraries: |
        brew:
          - openjpeg
        apt:
          - libopenjp2-7
      envs: |
        - linux: py314
        - windows: py313
        - macos: py313
        - linux: py312-oldestdeps
    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
      cache-path: |
        docs/_build/
        docs/generated/
        .tox/sample_data/
      cache-key: docs-${{ github.run_id }}
      libraries: |
        apt:
          - libopenjp2-7
          - graphviz
      envs: |
        - linux: build_docs

  online:
    if: "!startsWith(github.event.ref, 'refs/tags/v')"
    needs: [docs]
    uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@v2
    with:
      default_python: '3.13'
      submodules: false
      coverage: codecov
      toxdeps: tox-pypi-filter
      libraries: |
        apt:
          - libopenjp2-7
          - graphviz
      envs: |
        - linux: build_docs-gallery
          pytest: false
          cache-path: |
            docs/_build/
            docs/generated/
            .tox/sample_data/
          cache-key: docs-${{ github.run_id }}
        - linux: py313-online
          posargs: -n auto --dist loadgroup --color=yes
    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.yml@v2
    with:
      upload_to_anaconda: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') }}
      anaconda_user: scientific-python-nightly-wheels
      anaconda_package: sunpy
      anaconda_keep_n_latest: 1
      sdist: false
      test_extras: 'tests'
      test_command: 'pytest -p no:warnings --doctest-rst --pyargs sunpy'
      submodules: false
      targets: |
        - cp3{12,13,14}-manylinux*_x86_64
        - cp3{12,13,14}-macosx_x86_64
        - cp3{12,13,14}-macosx_arm64
        - cp3{12,13,14}-win_amd64
        - target: cp3{12,13,14}-manylinux_aarch64
          runs-on: ubuntu-24.04-arm
    secrets:
      pypi_token: ${{ secrets.pypi_token }}
      anaconda_token: ${{ secrets.anaconda_org_upload_token }}

  publish_pure:
    needs: [publish]
    uses: OpenAstronomy/github-actions-workflows/.github/workflows/publish_pure_python.yml@v2
    with:
      python-version: "3.13"
      test_extras: 'tests'
      test_command: 'pytest -p no:warnings --doctest-rst -m "not mpl_image_compare" --pyargs sunpy'
      submodules: false
      env: |
        SUNPY_NO_BUILD_ANA_EXTENSION: 1
    secrets:
      pypi_token: ${{ secrets.pypi_token }}

  notify:
    if: always() && (github.event_name == 'workflow_dispatch' || github.event_name == 'workflow_run')
    needs: [publish_pure, online]
    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: '!JYqfIVJjWANcHnfktY:cadair.com'
          ignore_pattern: '.*Load.*'
          summarise_success: true