refactor: update GitHub workflows for release management and image build #97
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
.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 theprepare-release
label..github/workflows/create-release.yml
to create a Git tag and GitHub Release when a PR with therefresh-locks
label is merged tomain
, extracting the version from the PR title.Library Publishing and Dependency Management
.github/workflows/publish-libs-on-merge.yml
to publish Python libraries to TestPyPI after aprepare-release
PR is merged, update service dependency pins, refresh lockfiles, and open a PR with updated lockfiles using therefresh-locks
label.Docker Image and Helm Chart Automation
.github/workflows/build-images.yml
to build and publish Docker images for all services when a release is published, capturing image digests as artifacts..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 thechart-bump
label.Workflow Gating and Cleanup
.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..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.