Reusable composite GitHub Actions for Python CI/CD workflows. Cross-platform (Windows, macOS, Linux), supporting pip, uv, and pixi package managers.
Set up Python with your preferred package manager, install dependencies, and configure caching.
| Action | Usage |
|---|---|
| pip | serapeum-org/github-actions/actions/python-setup/pip@pip/v1 |
| uv | serapeum-org/github-actions/actions/python-setup/uv@uv/v1 |
| pixi | serapeum-org/github-actions/actions/python-setup/pixi@pixi/v1 |
| Action | Usage |
|---|---|
| mkdocs-deploy | serapeum-org/github-actions/actions/mkdocs-deploy@mkdocs-deploy/v1 |
| Action | Usage |
|---|---|
| GitHub Release | serapeum-org/github-actions/actions/release/github@release-github/v1 |
| PyPI Release | serapeum-org/github-actions/actions/release/pypi@release-pypi/v1 |
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: serapeum-org/github-actions/actions/python-setup/uv@uv/v1
with:
python-version: '3.12'
install-groups: 'groups: dev test'
- run: pytestThe install-groups input (for pip and uv) supports:
# PEP 735 dependency groups
install-groups: 'groups: dev test'
# Optional dependencies (extras)
install-groups: 'extras: aws viz'
# Both combined
install-groups: 'groups: dev, extras: aws'For pixi, use the environments input instead:
environments: 'default py312'Each action is versioned independently with namespaced tags:
pip/v1.0.0 pip/v1 # Python setup with pip
uv/v1.2.0 uv/v1 # Python setup with uv
pixi/v1.0.0 pixi/v1 # Python setup with pixi
Pin to a major version tag for automatic patch/minor updates:
uses: serapeum-org/github-actions/actions/python-setup/uv@uv/v1See the Versioning Guide for details.
Full documentation is available at the docs site or browse the docs/ directory.
- Read the test workflows in
.github/workflows/test-*.yml - Use test fixtures from
tests/data/ - Maintain cross-platform compatibility (
shell: bash) - Follow semantic versioning
See LICENSE for details.