Skip to content

Conversation

a-klos
Copy link
Member

@a-klos a-klos commented Sep 10, 2025

This pull request restructures and improves the release automation for the repository by splitting the previous monolithic workflow into several specialized GitHub Actions workflows. These new workflows automate versioning, library publishing, Docker image building, Helm chart packaging, and dependency lockfile refreshing. Additionally, the workflows now use label-based gating to control releases and dependency updates, and they improve version extraction and artifact handling. The previous workflow file .github/workflows/semantic-release.yml has been removed and replaced with more maintainable, modular workflows.

Release and Versioning Automation

  • Added .github/workflows/prepare-release.yml to automate semantic version calculation and bump internal library versions, opening a PR with the new versions and gating future steps with the prepare-release label.
  • Added .github/workflows/create-release.yml to create a Git tag and GitHub Release when a PR with the refresh-locks label is merged to main, extracting the version from the PR title.

Library Publishing and Dependency Management

  • Added .github/workflows/publish-libs-on-merge.yml to publish Python libraries to TestPyPI after a prepare-release PR is merged, update service dependency pins, refresh lockfiles, and open a PR with updated lockfiles using the refresh-locks label.

Docker Image and Helm Chart Automation

  • Added .github/workflows/build-images.yml to build and publish Docker images for all services when a release is published, capturing image digests as artifacts.
  • Added .github/workflows/publish-chart.yml to package and publish the Helm chart after images are built, bumping chart versions and opening a PR for chart version updates using the chart-bump label.

Workflow Gating and Cleanup

  • Updated .github/workflows/lint-and-test.yml to skip jobs if any of the release-related labels (prepare-release, refresh-locks, chart-bump) are present, preventing unnecessary CI runs during release automation.
  • Removed the legacy .github/workflows/semantic-release.yml workflow, which previously handled all release steps in one file, in favor of the new modular approach.

These changes collectively make the release process more robust, modular, and maintainable, while ensuring that versioning, publishing, and dependency updates are tightly controlled and automated.

…ilding

- Added new workflows for creating releases, preparing releases, and publishing libraries on merge.
- Implemented logic to derive version from pull request titles and create Git tags/releases accordingly.
- Enhanced image building workflows to include digest capturing and improved error handling.
- Refactored existing workflows to streamline the process of bumping versions for internal libraries and services.
- Introduced scripts for bumping chart versions and updating pyproject dependencies.
- Removed obsolete scripts and workflows to clean up the repository.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant