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 GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jun 17, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: dagitali/python-project-lifecycle@3830839be6caca98cacca702c5aa38805c4fb516 # v0.1.2

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
phaseLifecycle 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-versionPython version to install via actions/setup-python.no3.13
pip-installArguments passed to "python -m pip install".no""
pip-versionExact pip version to install instead of upgrading to latest.no""
upgrade-pipUpgrade pip to latest unless pip-version is set.notrue
working-directoryDirectory where shell commands should run.no.
ruff-argsArguments passed to ruff for the lint phase.nocheck .
format-check-commandCommand run by the format-check phase.no""
meta-test-commandOptional command run before pytest-args in the test phase.no""
pytest-argsArguments passed to pytest for the test phase.no-q tests/
typecheck-commandCommand run by the typecheck phase.nomypy .
doclint-commandCommand run by the doclint phase.no""
security-commandCommand run by the security phase.no""
docs-builderSphinx builder used by the docs phase.nohtml
docs-source-dirSphinx source directory used by the docs phase.nodocs/source
docs-build-dirSphinx build output root used by the docs phase.nodocs/build
docs-doctree-dirSphinx doctree output root used by the docs phase.nodocs/build/doctrees
docs-generated-api-dirGenerated API docs directory cleaned before the docs phase when present.nodocs/source/api/generated
docs-pip-installArguments passed to python-bootstrap's pip-install input for docs dependencies.no-e .[docs]
build-commandCommand used by the build phase to build distributions.nopython -m build
release-artifact-audit-commandOptional command used by the build phase to audit artifacts.no""
twine-checkRun "python -m twine check" in the build phase.notrue
build-pip-installArguments passed to python-bootstrap's pip-install input for build dependencies.nobuild twine
skip-installer-smokeSkip installer smoke tests during the build-upload phase.nofalse
skip-wheel-smokeSkip wheel behavior smoke tests during the build-upload phase.nofalse
skip-artifact-uploadSkip distribution artifact upload during the build-upload phase.nofalse
dist-globGlob or path expression used to select built distributions.nodist/*
artifact-nameArtifact name used when uploading or downloading distributions.nodist-artifacts
artifact-pathDestination path for downloaded artifacts.nodist
sbom-tool-versionCycloneDX tool version installed by the sbom phase.no7.2.2
sbom-output-fileSBOM output path.nosbom.json
sbom-output-formatSBOM output format.noJSON
sbom-commandOptional custom command run by the sbom phase instead.no""
wheel-globGlob or path for the built wheel artifact used by smoke tests.nodist/*.whl
smoke-venv-pathVirtual environment path used by wheel-smoke.no.wheel-venv
behavior-smoke-commandCommand run after installing the wheel in wheel-smoke. Use "{python}" as a placeholder for the smoke-test Python interpreter.no""
command-nameCommand expected to be available on PATH after installing the wheel artifact.no""
smoke-commandsNewline-separated commands run by installer-smoke.no""
installer-smoke-installersComma-separated installers to smoke-test: pip,pipx,uv.nopip,pipx,uv
package-namePackage name used by installer-smoke for cleanup when needed.no""
deploy-commandCommand run by the deploy phase.no""
namedescription
python-versionResolved Python version.
pip-versionResolved pip version.
dist-pathDistribution artifact path or glob used for upload and validation.
artifact-pathDestination path used when downloading distribution artifacts.
artifact-nameUploaded or downloaded artifact name.
wheel-pathWheel artifact path or glob used by smoke tests.
docs-output-dirBuilt documentation output directory.
sbom-pathGenerated SBOM path.
coverage-fileDefault coverage report path.