145 lines
3.8 KiB
YAML
145 lines
3.8 KiB
YAML
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 }}
|