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 }}