Repository navigation
Run cruft update from package template #12
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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 | ||
| permissions: {} | ||
| jobs: | ||
| core: | ||
| uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@8c8bb6c6c962542921f993d47d26df38dccd50b1 # v3.0.2 | ||
| permissions: | ||
| id-token: write | ||
| with: | ||
| submodules: false | ||
| coverage: codecov-oidc | ||
| toxdeps: tox-pypi-filter | ||
| posargs: -n auto --color=yes | ||
| envs: | | ||
| <<<<<<< | ||
| - linux: py313-minimal | ||
| secrets: | ||
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | ||
| ======= | ||
| - linux: py313 | ||
| >>>>>>> | ||
| sdist_verify: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | ||
| with: | ||
| persist-credentials: false | ||
| - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | ||
| 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@8c8bb6c6c962542921f993d47d26df38dccd50b1 # v3.0.2 | ||
| permissions: | ||
| id-token: write | ||
| with: | ||
| submodules: false | ||
| coverage: codecov-oidc | ||
| 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 }} | ||
| ======= | ||
| - linux: py314-devdeps | ||
| >>>>>>> | ||
| docs: | ||
| needs: [core] | ||
| uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@8c8bb6c6c962542921f993d47d26df38dccd50b1 # v3.0.2 | ||
| 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 | ||
| pytest: false | ||
| # Speed up CI builds by not building full nav tree | ||
| posargs: -D html_theme_options.collapse_navigation=True | ||
| online: | ||
| if: "!startsWith(github.event.ref, 'refs/tags/v')" | ||
| needs: [docs] | ||
| uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@8c8bb6c6c962542921f993d47d26df38dccd50b1 # v3.0.2 | ||
| with: | ||
| default_python: '3.13' | ||
| submodules: false | ||
| coverage: codecov | ||
| toxdeps: tox-pypi-filter | ||
| libraries: | | ||
| apt: | ||
| - libopenjp2-7 | ||
| - graphviz | ||
| envs: | | ||
| - linux: build_docs-gallery | ||
| # Speed up CI builds by not building full nav tree | ||
| posargs: -D html_theme_options.collapse_navigation=True | ||
| 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 }} | ||
| ======= | ||
| online: | ||
| needs: [core] | ||
| uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@8c8bb6c6c962542921f993d47d26df38dccd50b1 # v3.0.2 | ||
| permissions: | ||
| id-token: write | ||
| with: | ||
| submodules: false | ||
| toxdeps: tox-pypi-filter | ||
| coverage: codecov-oidc | ||
| envs: | | ||
| >>>>>>> | ||
| threading: | ||
| needs: [core] | ||
| uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@8c8bb6c6c962542921f993d47d26df38dccd50b1 # v3.0.2 | ||
| permissions: | ||
| id-token: write | ||
| with: | ||
| submodules: false | ||
| coverage: codecov | ||
| toxdeps: tox-pypi-filter | ||
| <<<<<<< | ||
| ======= | ||
| coverage: codecov-oidc | ||
| envs: | | ||
| >>>>>>> | ||
| posargs: -n auto --color=yes | ||
| libraries: | | ||
| brew: | ||
| - openjpeg | ||
| apt: | ||
| - libopenjp2-7 | ||
| setenv: | | ||
| RUSTUP_TOOLCHAIN: stable # needed for building mocpy (a dependency of reproject) | ||
| envs: | | ||
| - linux: py314 | ||
| name: py314 (parallel threads) | ||
| posargs: --parallel-threads=auto --color=yes | ||
| - linux: py314t-devdeps-minimal | ||
| name: py314t-devdeps | ||
| - linux: py314t-devdeps-minimal | ||
| name: py314t-devdeps (parallel threads) | ||
| posargs: --parallel-threads=auto --color=yes | ||
| secrets: | ||
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | ||
| build_dists: | ||
| # 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@8c8bb6c6c962542921f993d47d26df38dccd50b1 # v3.0.2 | ||
| with: | ||
| sdist: false # Built with a universal wheel below | ||
| 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 | ||
| test_extras: 'tests' | ||
| test_command: 'pytest -p no:warnings --doctest-rst --pyargs sunpy' | ||
| submodules: false | ||
| save_artifacts: true | ||
| upload_to_pypi: false | ||
| upload_to_anaconda: ${{ github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/main' }} | ||
| anaconda_user: scientific-python-nightly-wheels | ||
| anaconda_package: sunpy | ||
| anaconda_keep_n_latest: 1 | ||
| env: | | ||
| EXTENSION_HELPERS_PY_LIMITED_API: 'cp312' | ||
| secrets: | ||
| anaconda_token: ${{ secrets.anaconda_org_upload_token }} | ||
| build_pure: | ||
| 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@8c8bb6c6c962542921f993d47d26df38dccd50b1 # v3.0.2 | ||
| 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 | ||
| save_artifacts: true | ||
| upload_to_pypi: false | ||
| publish: | ||
| if: startsWith(github.ref, 'refs/tags/v') | ||
| name: Upload to PyPI | ||
| runs-on: ubuntu-latest | ||
| needs: [build_dists, build_pure] | ||
| permissions: | ||
| id-token: write | ||
| environment: | ||
| name: pypi | ||
| steps: | ||
| - name: Download artifacts | ||
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | ||
| with: | ||
| merge-multiple: true | ||
| pattern: dist-* | ||
| path: dist | ||
| - run: ls -lha dist/ | ||
| - name: Run upload | ||
| uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2 | ||
| notify: | ||
| if: ${{ !cancelled() && (github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') }} | ||
| needs: [build_dists, build_pure, online] | ||
| runs-on: ubuntu-latest | ||
| environment: | ||
| name: matrix | ||
| steps: | ||
| - uses: Cadair/matrix-notify-action@31c7cc36051ee7dc4157a22c1f13dbc7d68e5120 # v2 | ||
| with: | ||
| workflow_description: 'CI Workflow' | ||
| matrix_token: ${{ secrets.MATRIX_ACCESS_TOKEN }} | ||
| github_token: ${{ secrets.GITHUB_TOKEN }} | ||
| homeserver: ${{ secrets.MATRIX_HOMESERVER }} | ||
| roomid: '!JYqfIVJjWANcHnfktY:cadair.com' | ||
| ignore_pattern: '.*(Load|report overall).*' | ||
| summarise_success: true | ||