Skip to main content
Version: Next

Release System

GitHub release

The release workflows for this template are now maintained in the centralized repository Chisanan232/GitHub-Action_Reusable_Workflows-Python. This project consumes those reusable workflows for production, validation, and staging releases while keeping only minimal configuration locally.

Release workflows​

Production release (release.yml)​

Release PyPI version

Publishes production artifacts (PyPI package, container images, docs) using the centralized rw_release_complete.yaml workflow logic.

  • Purpose – Ship the production-ready version of your project whenever you approve a release.
  • Effects – Builds from locked dependencies, signs artifacts (if configured), pushes semantic tags, and updates changelog summaries.
  • Targets – PyPI (wheel + sdist), Docker Hub/GHCR images, and the published Docusaurus docs site.
  • Documentation – See the reusable workflow guide for production releases: rw_release_complete.yaml (hosted in Chisanan232/GitHub-Action_Reusable_Workflows-Python).
Documentation

See the reusable workflow guide for production releases: rw_release_complete.yaml (hosted in Chisanan232/GitHub-Action_Reusable_Workflows-Python).

Release staging (release-staging.yml)​

Release Staging TestPyPI version

Creates staging/TestPyPI packages, RC container images, and preview documentation to test releases before production.

  • Purpose – Provide a safe rehearsal of the full release pipeline with artifacts you can share internally.
  • Effects – Publishes release-candidate packages, tags container images with -rc, and deploys docs to preview channels without touching production identifiers.
  • Targets – TestPyPI, staging container registries (Docker Hub/GHCR), and preview docs buckets or branches.
Documentation

Reusable staging workflow reference: rw_release_staging_complete.yaml.

Release validation (release-validate.yml)​

Release Validation

Dry-runs the release pipeline for pull requests, verifying builds and security checks without publishing artifacts.

  • Purpose – Catch packaging, signing, or configuration issues before they reach staging or production.
  • Effects – Executes the same jobs as a real release (build, test, SBOM, signing) but discards artifacts after validation.
  • Targets – No registries are updated; results remain within the PR context and GitHub Actions artifact storage for review.
Documentation

Reusable validation workflow details: rw_release_validation_complete.yaml.

Overview​

  • Centralized logic: All release orchestration lives in the reusable workflow repository.
  • Multi-target support: Python packages, container images, and documentation publishing remain available through the shared workflows.
  • Configuration-driven: Child projects configure releases via intent.yaml, delegating implementation details to the centralized workflows.
  • Release targets at a glance:
    • PyPI for production Python packages
    • TestPyPI for staging/validation builds
    • Docker Hub and GitHub Container Registry for container images
    • Docusaurus documentation deployments
Learn more

For complete release architecture diagrams, configuration options, and usage guides, see the official documentation:

These resources provide the authoritative, up-to-date reference for release operations after the migration to centralized workflows.

Working in this template​

  • Maintain intent.yaml to control release behavior for this project.
  • Ensure workflow references point to the centralized repository (for example, uses: Chisanan232/GitHub-Action_Reusable_Workflows-Python/.github/workflows/rw_release_complete.yaml@main).
  • Use the linked documentation for detailed steps, troubleshooting, and advanced configuration.