Skip to content

Unify chart and image release into a single tag-triggered workflow - #71

Merged
KongZ merged 1 commit into
mainfrom
unify-release-on-tag
Sep 17, 2026
Merged

KongZ merged 1 commit into
mainfrom
unify-release-on-tag

Conversation

@KongZ

@KongZ KongZ commented Sep 16, 2026

Copy link
Copy Markdown
Owner

Summary

Previously, releases were split across two independently-triggered workflows:

  • chart-release.yml ran on every push to main (creating a chart release whenever Chart.yaml's version changed)
  • image-release.yml ran on a version tag push (e.g. 1.2.3), building and pushing both Docker images

This meant a chart release and an image release could drift apart — e.g. a chart bump merged to main without a corresponding tag, or a tag pushed without a matching chart version bump.

This PR replaces both with a single release.yml, modeled on KongZ/kubeai-chatbot's release workflow:

  • Triggers only on a version tag push ([0-9]+.[0-9]+.[0-9]+), same pattern the old image-release.yml used
  • Three independent jobs run in parallel from that one trigger: release-piggy-env, release-piggy-webhooks, release-chart
  • Job contents are otherwise unchanged (same actions, same pins, same chart-releaser config publishing to the existing piggysec.com Helm repo via gh-pages) — this is a trigger/structure consolidation, not a change to how each artifact is built or published
  • Dropped the super-linter step that used to run inside chart-release.yml on every main push, since pull_request.yml already lints every change before it merges to main; re-linting again at tag time was redundant

Release flow after this change

Bump Chart.yaml's version/appVersion, merge to main, then push a single tag like 1.2.4 — that one tag now produces both Docker images and the chart release together.

Testing

  • Validated the new workflow's YAML syntax
  • Confirmed no docs reference the removed workflow filenames
  • Diffed each job against the original image-release.yml/chart-release.yml steps to confirm no unintended changes to build args, tags, or the chart-releaser config

Previously the chart (on push to main) and images (on tag push) were
released by two separate, differently-triggered workflows, so a
release could end up with an image but no matching chart release, or
vice versa.

Replace image-release.yml and chart-release.yml with a single
release.yml, modeled on KongZ/kubeai-chatbot's release workflow, that
triggers on a single version tag (e.g. 1.2.3) and runs three
independent jobs: release-piggy-env, release-piggy-webhooks, and
release-chart. All three run in parallel from the same trigger, so
tagging a release always produces the chart and both images together.
@github-actions

Copy link
Copy Markdown

Super-linter summary

Language Validation result
BIOME_LINT Pass ✅
GITHUB_ACTIONS Pass ✅
GITHUB_ACTIONS_ZIZMOR Pass ✅
GITLEAKS Pass ✅
GIT_MERGE_CONFLICT_MARKERS Pass ✅
JSCPD Pass ✅
PRE_COMMIT Pass ✅
TRIVY Pass ✅

All files and directories linted successfully

For more information, see the GitHub Actions workflow run

Powered by Super-linter

@KongZ
KongZ merged commit 47838ae into main Sep 17, 2026
11 checks passed
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