diff options
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r-- | .github/workflows/ci.yml | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..5d6d588 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,145 @@ +name: CI + +on: + push: + branches: + - "main" + - "*.*" + - "!*backport*" + tags: + - "v*" + - "!*dev*" + - "!*pre*" + - "!*post*" + pull_request: + # Allow manual runs through the web UI + workflow_dispatch: + schedule: + # ┌───────── minute (0 - 59) + # │ ┌───────── hour (0 - 23) + # │ │ ┌───────── day of the month (1 - 31) + # │ │ │ ┌───────── month (1 - 12 or JAN-DEC) + # │ │ │ │ ┌───────── day of the week (0 - 6 or SUN-SAT) + - cron: "0 7 * * *" # Every day at 07:00 UTC + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + core: + uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@main + with: + submodules: false + coverage: codecov + libraries: | + apt: + - pandoc + - graphviz + envs: | + - linux: py313-sphinx8 + secrets: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + + test: + needs: [core] + uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@main + with: + submodules: false + libraries: | + brew: + - pandoc + - graphviz + choco: + - pandoc + - graphviz + apt: + - pandoc + - graphviz + envs: | + - macos: py312-sphinx8 + - windows: py311-sphinx8 + - linux: py310-sphinx8 + - linux: py312-pydata-sphinx-theme + - linux: py313-devdeps + + extra_tests: + needs: [test] + uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@main + with: + submodules: false + libraries: | + apt: + - pandoc + - graphviz + envs: | + - linux: py312-pydata-sphinx-theme + - linux: py313-devdeps + + docs: + needs: [core] + uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@main + with: + submodules: false + pytest: false + libraries: | + apt: + - pandoc + - graphviz + envs: | + - linux: py313-docs + - linux: py313-linkcheck + + sdist_verify: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + 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/* + + conda: + needs: [test] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + lfs: true + - uses: conda-incubator/setup-miniconda@v3 + with: + activate-environment: ablog-test + environment-file: ablog-conda-test-env.yml + python-version: "3.13" + - name: Install ablog + shell: bash -el {0} + run: | + pip install --no-deps --no-build-isolation . + - name: Run test + shell: bash -el {0} + run: | + conda list + cd /tmp + pytest -vvv -r a --pyargs ablog + make tests + + 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, sdist_verify] + uses: OpenAstronomy/github-actions-workflows/.github/workflows/publish_pure_python.yml@main + with: + python-version: "3.13" + submodules: false + secrets: + pypi_token: ${{ secrets.PYPI_TOKEN }} |