summaryrefslogtreecommitdiffstats
path: root/.github/workflows/ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r--.github/workflows/ci.yml145
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 }}