Skip to content

CI: avoid double trigger #85

CI: avoid double trigger

CI: avoid double trigger #85

Workflow file for this run

name: build
on:
push:
branches:
- "master"
- "ci-*"
tags:
pull_request:
env:
PY_COLORS: 1
jobs:
tests-py:
runs-on: ubuntu-latest
strategy:
matrix:
python:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
- "pypy-3.8"
- "pypy-3.9"
- "pypy-3.10"
steps:
- uses: actions/checkout@v4
- name: Setup Python ${{ matrix.python }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
run: pip install tox
- name: Run tests
run: tox run -e py
tests-misc:
runs-on: ubuntu-latest
strategy:
matrix:
env:
- build
- docs
- lint
- type
steps:
- uses: actions/checkout@v4
with:
# build env: fetch all commits for version computation
fetch-depth: ${{ matrix.env == 'build' && '0' || '1' }}
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dependencies
run: pip install tox
- name: Run ${{ matrix.env }}
run: tox run -e ${{ matrix.env }}
- if: ${{ matrix.env == 'build' || matrix.env == 'docs' }}
name: Save ${{ matrix.env }} artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.env }}
path: dist
publish:
if: startsWith(github.ref, 'refs/tags')
needs:
- tests-py
- tests-misc
runs-on: ubuntu-latest
environment: publish
permissions:
id-token: write # This permission is mandatory for trusted publishing
steps:
- name: Restore build artifacts
uses: actions/download-artifact@v4
with:
name: build
path: dist
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
verbose: true
print-hash: true
deploy-docs:
needs: publish
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Restore build artifacts
uses: actions/download-artifact@v4
with:
name: docs
path: dist
- name: Deploy docs
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: gh-pages
folder: dist/docs