Skip to content

Repository files navigation

python-bootstrap

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.

Usage

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

Use 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'

Inputs

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.

Examples

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'

Outputs

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.

Supported Matrix

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.

Permissions

The action itself does not require repository or token permissions. Calling workflows should grant only the permissions needed by their own jobs.

Version Pinning

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.

License

Copyright © 2026 Dagitali LLC. All rights reserved.

See LICENSE for details.

About

Sets up a requested Python runtime environment

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Sponsor this project

Packages

Contributors