python-bootstrap is a composite GitHub Actions action that sets up a requested Python runtime and
optionally normalizes pip before installing dependencies for the calling job.
Use a released tag in downstream workflows:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: Dagitali/python-bootstrap@v1
with:
python-version: '3.13'
pip-install: '-r requirements.txt'
- run: python --versionUse the action from a checked-out copy when developing this repository:
steps:
- uses: actions/checkout@v6
- uses: ./
with:
python-version: '3.14'
upgrade-pip: 'false'| Name | Required | Default | Description |
|---|---|---|---|
python-version |
Yes | N/A | Python version passed to actions/setup-python. |
pip-version |
No | '' |
Exact pip version to install. When set, this takes precedence over upgrade-pip. |
pip-install |
No | '' |
Arguments passed to python -m pip install. Empty skips dependency installation. |
upgrade-pip |
No | 'true' |
Upgrade pip to the latest available version before dependency installation. Use 'false' to skip. |
Treat pip-install as trusted workflow configuration. Do not build it from untrusted issue, pull
request, or user-supplied text.
Minimal Python setup:
- uses: Dagitali/python-bootstrap@v1
with:
python-version: '3.13'Pin a specific pip version:
- uses: Dagitali/python-bootstrap@v1
with:
python-version: '3.13'
pip-version: '25.0.1'Install project dependencies:
- uses: Dagitali/python-bootstrap@v1
with:
python-version: '3.13'
pip-install: '-r requirements.txt'Install the current package in editable mode with extras:
- uses: Dagitali/python-bootstrap@v1
with:
python-version: '3.13'
pip-install: '-e .[dev,test]'Skip the default pip upgrade:
- uses: Dagitali/python-bootstrap@v1
with:
python-version: '3.13'
upgrade-pip: 'false'This action does not define outputs. It changes the calling job environment by making the requested
Python version active on PATH and, when requested, installing dependencies into that Python
environment.
The repository CI validates the action on GitHub-hosted ubuntu-latest, macos-latest, and
windows-latest runners with Python 3.11, 3.12, 3.13, and 3.14.
The action itself does not require repository or token permissions. Calling workflows should grant only the permissions needed by their own jobs.
Prefer a release tag such as Dagitali/python-bootstrap@v1 or an exact version tag for normal use.
Pin to a full commit SHA when your workflow requires maximum supply-chain immutability.
Copyright © 2026 Dagitali LLC. All rights reserved.
See LICENSE for details.