dagitali/Python Project Lifecycle
Runs a selected Python project lifecycle phase for setup, linting, formatting checks, tests, docs, SBOM generation, distribution builds, artifact handling, security checks, deployment hooks, and package smoke validation.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jun 17, 2026
- License
- MIT
Pinned Snippet
uses: dagitali/python-project-lifecycle@3830839be6caca98cacca702c5aa38805c4fb516 # v0.1.2tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| phase | Lifecycle phase to run: bootstrap, lint, format-check, test, typecheck, doclint, docs, sbom, security, build, build-upload, upload-dist, download-dist, wheel-smoke, installer-smoke, or deploy. | yes | — |
| python-version | Python version to install via actions/setup-python. | no | 3.13 |
| pip-install | Arguments passed to "python -m pip install". | no | "" |
| pip-version | Exact pip version to install instead of upgrading to latest. | no | "" |
| upgrade-pip | Upgrade pip to latest unless pip-version is set. | no | true |
| working-directory | Directory where shell commands should run. | no | . |
| ruff-args | Arguments passed to ruff for the lint phase. | no | check . |
| format-check-command | Command run by the format-check phase. | no | "" |
| meta-test-command | Optional command run before pytest-args in the test phase. | no | "" |
| pytest-args | Arguments passed to pytest for the test phase. | no | -q tests/ |
| typecheck-command | Command run by the typecheck phase. | no | mypy . |
| doclint-command | Command run by the doclint phase. | no | "" |
| security-command | Command run by the security phase. | no | "" |
| docs-builder | Sphinx builder used by the docs phase. | no | html |
| docs-source-dir | Sphinx source directory used by the docs phase. | no | docs/source |
| docs-build-dir | Sphinx build output root used by the docs phase. | no | docs/build |
| docs-doctree-dir | Sphinx doctree output root used by the docs phase. | no | docs/build/doctrees |
| docs-generated-api-dir | Generated API docs directory cleaned before the docs phase when present. | no | docs/source/api/generated |
| docs-pip-install | Arguments passed to python-bootstrap's pip-install input for docs dependencies. | no | -e .[docs] |
| build-command | Command used by the build phase to build distributions. | no | python -m build |
| release-artifact-audit-command | Optional command used by the build phase to audit artifacts. | no | "" |
| twine-check | Run "python -m twine check" in the build phase. | no | true |
| build-pip-install | Arguments passed to python-bootstrap's pip-install input for build dependencies. | no | build twine |
| skip-installer-smoke | Skip installer smoke tests during the build-upload phase. | no | false |
| skip-wheel-smoke | Skip wheel behavior smoke tests during the build-upload phase. | no | false |
| skip-artifact-upload | Skip distribution artifact upload during the build-upload phase. | no | false |
| dist-glob | Glob or path expression used to select built distributions. | no | dist/* |
| artifact-name | Artifact name used when uploading or downloading distributions. | no | dist-artifacts |
| artifact-path | Destination path for downloaded artifacts. | no | dist |
| sbom-tool-version | CycloneDX tool version installed by the sbom phase. | no | 7.2.2 |
| sbom-output-file | SBOM output path. | no | sbom.json |
| sbom-output-format | SBOM output format. | no | JSON |
| sbom-command | Optional custom command run by the sbom phase instead. | no | "" |
| wheel-glob | Glob or path for the built wheel artifact used by smoke tests. | no | dist/*.whl |
| smoke-venv-path | Virtual environment path used by wheel-smoke. | no | .wheel-venv |
| behavior-smoke-command | Command run after installing the wheel in wheel-smoke. Use "{python}" as a placeholder for the smoke-test Python interpreter. | no | "" |
| command-name | Command expected to be available on PATH after installing the wheel artifact. | no | "" |
| smoke-commands | Newline-separated commands run by installer-smoke. | no | "" |
| installer-smoke-installers | Comma-separated installers to smoke-test: pip,pipx,uv. | no | pip,pipx,uv |
| package-name | Package name used by installer-smoke for cleanup when needed. | no | "" |
| deploy-command | Command run by the deploy phase. | no | "" |
Outputs
| name | description |
|---|---|
| python-version | Resolved Python version. |
| pip-version | Resolved pip version. |
| dist-path | Distribution artifact path or glob used for upload and validation. |
| artifact-path | Destination path used when downloading distribution artifacts. |
| artifact-name | Uploaded or downloaded artifact name. |
| wheel-path | Wheel artifact path or glob used by smoke tests. |
| docs-output-dir | Built documentation output directory. |
| sbom-path | Generated SBOM path. |
| coverage-file | Default coverage report path. |