From 5e82a38c1c1579fe232aeb2042d521f847a09602 Mon Sep 17 00:00:00 2001 From: Yordis Prieto Date: Fri, 16 Oct 2026 16:13:13 -0400 Subject: [PATCH 1/8] feat(release): release the exact images and charts main already published under the version Signed-off-by: Yordis Prieto --- .../mise/tasks/github/workflows/release/image | 30 ++++++ .github/workflows/release.yml | 92 +++++++++++++++++++ mise.toml | 1 + 3 files changed, 123 insertions(+) create mode 100755 .config/mise/tasks/github/workflows/release/image create mode 100644 .github/workflows/release.yml diff --git a/.config/mise/tasks/github/workflows/release/image b/.config/mise/tasks/github/workflows/release/image new file mode 100755 index 00000000..5818c2ec --- /dev/null +++ b/.config/mise/tasks/github/workflows/release/image @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +#MISE description="Add the release version tag to the named image already built for the commit, refusing to move a version tag that points elsewhere" +set -euo pipefail + +: "${IMAGES_REGISTRY:?set IMAGES_REGISTRY, e.g. ghcr.io/trogonstack/images}" +usage="usage: image " +name="${1:?$usage}" +version="${2:?$usage}" +commit="${3:?$usage}" + +if ! [[ "$version" =~ ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-[0-9A-Za-z.-]+)?$ ]]; then + echo "$version is not a SemVer version without build metadata" >&2 + exit 1 +fi + +repository="$IMAGES_REGISTRY/$name" +built="$(crane digest "$repository:$commit")" + +if crane ls "$repository" | grep -qxF "$version"; then + released="$(crane digest "$repository:$version")" + if [ "$released" != "$built" ]; then + echo "$repository:$version already points at $released, not $built" >&2 + exit 1 + fi + echo "skipping $name $version (already released)" >&2 + exit 0 +fi + +echo "releasing $name $version from $commit" >&2 +crane tag "$repository:$commit" "$version" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..0b985fcf --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,92 @@ +name: Release + +on: + push: + tags: + - v* + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: false + +permissions: {} + +jobs: + runs-on: + uses: ./.github/workflows/runs-on.yml + + images: + name: Image (${{ matrix.image }}) + needs: runs-on + runs-on: ${{ needs.runs-on.outputs.runs-on }} + permissions: + contents: read + packages: write + strategy: + fail-fast: false + matrix: + image: + - trogon-atlas-server + - trogon-atlas-studio + + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Install mise + uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1 + with: + cache: false + + - name: crane auth login + env: + REGISTRY_USERNAME: ${{ github.actor }} + REGISTRY_PASSWORD: ${{ secrets.GITHUB_TOKEN }} + run: printf '%s' "$REGISTRY_PASSWORD" | mise exec -- crane auth login ghcr.io --username "$REGISTRY_USERNAME" --password-stdin + + - name: release image + env: + IMAGES_REGISTRY: ghcr.io/trogonstack/images + IMAGE: ${{ matrix.image }} + TAG: ${{ github.ref_name }} + COMMIT: ${{ github.sha }} + run: mise run github:workflows:release:image "$IMAGE" "${TAG#v}" "$COMMIT" + + charts: + name: Chart (${{ matrix.chart }}) + needs: [runs-on, images] + runs-on: ${{ needs.runs-on.outputs.runs-on }} + permissions: + contents: read + packages: write + strategy: + fail-fast: false + matrix: + chart: + - trogon-atlas-server + - trogon-atlas-studio + - trogon-atlas + + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Install mise + uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1 + with: + cache: false + + - name: helm registry login + env: + REGISTRY_USERNAME: ${{ github.actor }} + REGISTRY_PASSWORD: ${{ secrets.GITHUB_TOKEN }} + run: printf '%s' "$REGISTRY_PASSWORD" | mise exec -- helm registry login ghcr.io --username "$REGISTRY_USERNAME" --password-stdin + + - name: publish chart + env: + CHARTS_REGISTRY: oci://ghcr.io/trogonstack/charts + CHART: ${{ matrix.chart }} + TAG: ${{ github.ref_name }} + run: mise run github:workflows:publish:chart "$CHART" "${TAG#v}" "${TAG#v}" diff --git a/mise.toml b/mise.toml index cce4f163..5009d456 100644 --- a/mise.toml +++ b/mise.toml @@ -1,6 +1,7 @@ [tools] rust = { version = "nightly-2026-09-06", components = "rustfmt,clippy,llvm-tools" } buf = "1.73.0" +crane = "0.22.1" node = "22" pnpm = "10.3.0" helm = "4.3.0" From 86530bbb3e41cbcc7991679b16d70979d06d16c5 Mon Sep 17 00:00:00 2001 From: Yordis Prieto Date: Fri, 16 Oct 2026 16:35:39 -0400 Subject: [PATCH 2/8] fix(release): refuse to release when the existing tags cannot be listed Signed-off-by: Yordis Prieto --- .config/mise/tasks/github/workflows/release/image | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.config/mise/tasks/github/workflows/release/image b/.config/mise/tasks/github/workflows/release/image index 5818c2ec..1a050d8b 100755 --- a/.config/mise/tasks/github/workflows/release/image +++ b/.config/mise/tasks/github/workflows/release/image @@ -16,7 +16,8 @@ fi repository="$IMAGES_REGISTRY/$name" built="$(crane digest "$repository:$commit")" -if crane ls "$repository" | grep -qxF "$version"; then +tags="$(crane ls "$repository")" +if grep -qxF "$version" <<<"$tags"; then released="$(crane digest "$repository:$version")" if [ "$released" != "$built" ]; then echo "$repository:$version already points at $released, not $built" >&2 From 5d3c8cec6549945950edea658d3e6c86c21bdd85 Mon Sep 17 00:00:00 2001 From: Yordis Prieto Date: Fri, 16 Oct 2026 17:37:55 -0400 Subject: [PATCH 3/8] feat(release): release under the atlas namespace Signed-off-by: Yordis Prieto --- .config/mise/tasks/github/workflows/release/image | 2 +- .github/workflows/release.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.config/mise/tasks/github/workflows/release/image b/.config/mise/tasks/github/workflows/release/image index 1a050d8b..bbb57f45 100755 --- a/.config/mise/tasks/github/workflows/release/image +++ b/.config/mise/tasks/github/workflows/release/image @@ -2,7 +2,7 @@ #MISE description="Add the release version tag to the named image already built for the commit, refusing to move a version tag that points elsewhere" set -euo pipefail -: "${IMAGES_REGISTRY:?set IMAGES_REGISTRY, e.g. ghcr.io/trogonstack/images}" +: "${IMAGES_REGISTRY:?set IMAGES_REGISTRY, e.g. ghcr.io/trogonstack/images/atlas}" usage="usage: image " name="${1:?$usage}" version="${2:?$usage}" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0b985fcf..3ec19fb6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,7 +47,7 @@ jobs: - name: release image env: - IMAGES_REGISTRY: ghcr.io/trogonstack/images + IMAGES_REGISTRY: ghcr.io/trogonstack/images/atlas IMAGE: ${{ matrix.image }} TAG: ${{ github.ref_name }} COMMIT: ${{ github.sha }} @@ -86,7 +86,7 @@ jobs: - name: publish chart env: - CHARTS_REGISTRY: oci://ghcr.io/trogonstack/charts + CHARTS_REGISTRY: oci://ghcr.io/trogonstack/charts/atlas CHART: ${{ matrix.chart }} TAG: ${{ github.ref_name }} run: mise run github:workflows:publish:chart "$CHART" "${TAG#v}" "${TAG#v}" From 9985029f29e17a8bc662d0d8796c37638ff9c197 Mon Sep 17 00:00:00 2001 From: Yordis Prieto Date: Fri, 16 Oct 2026 22:04:36 -0400 Subject: [PATCH 4/8] feat(release): release charts on their own versions and keep images on Atlas tags Signed-off-by: Yordis Prieto --- .../mise/tasks/github/workflows/publish/chart | 38 +++++++++--- .../mise/tasks/github/workflows/release/chart | 19 ++++++ .config/release-please/config.json | 11 ++++ .config/release-please/manifest.json | 4 ++ .github/workflows/publish.yml | 12 ++++ .github/workflows/release-charts.yml | 59 +++++++++++++++++++ .github/workflows/release-please.yml | 28 +++++++++ .github/workflows/release.yml | 37 ++---------- .../helm/charts/trogon-atlas-server/README.md | 18 ++++-- .../helm/charts/trogon-atlas-studio/README.md | 18 ++++-- 10 files changed, 195 insertions(+), 49 deletions(-) create mode 100755 .config/mise/tasks/github/workflows/release/chart create mode 100644 .config/release-please/config.json create mode 100644 .config/release-please/manifest.json create mode 100644 .github/workflows/release-charts.yml create mode 100644 .github/workflows/release-please.yml diff --git a/.config/mise/tasks/github/workflows/publish/chart b/.config/mise/tasks/github/workflows/publish/chart index 3d787441..18cf5e16 100755 --- a/.config/mise/tasks/github/workflows/publish/chart +++ b/.config/mise/tasks/github/workflows/publish/chart @@ -1,11 +1,26 @@ #!/usr/bin/env bash -#MISE description="Package the named chart and its file:// subcharts at the given version and app version, and push it unless the OCI registry already has that version" +#MISE description="Package the named chart and push it unless the OCI registry already has that version; with a version and app version, stamp them on the chart and its file:// subcharts first, otherwise publish the committed chart as is" set -euo pipefail : "${CHARTS_REGISTRY:?set CHARTS_REGISTRY, e.g. oci://ghcr.io/trogonstack/charts/atlas}" -name="${1:?usage: chart }" -export CHART_VERSION="${2:?usage: chart }" -export CHART_APP_VERSION="${3:?usage: chart }" +usage="usage: chart [ ]" +name="${1:?$usage}" +case "$#" in + 1) + stamped=false + CHART_VERSION="$(yq '.version' "$MISE_PROJECT_ROOT/devops/helm/charts/$name/Chart.yaml")" + ;; + 3) + stamped=true + CHART_VERSION="$2" + export CHART_APP_VERSION="$3" + ;; + *) + echo "$usage" >&2 + exit 1 + ;; +esac +export CHART_VERSION if lookup="$(helm show chart "$CHARTS_REGISTRY/$name" --version "$CHART_VERSION" 2>&1 >/dev/null)"; then echo "skipping $name $CHART_VERSION (already published)" >&2 @@ -27,13 +42,18 @@ stamp() { yq -i '.version = strenv(CHART_VERSION) | .appVersion = strenv(CHART_APP_VERSION)' "$1/Chart.yaml" } -stamp "$chart" -while IFS= read -r dependency; do - stamp "$chart/$dependency" -done < <(yq '.dependencies[] | select(.repository == "file://*") | .repository | sub("^file://", "")' "$chart/Chart.yaml") +if "$stamped"; then + stamp "$chart" + while IFS= read -r dependency; do + stamp "$chart/$dependency" + done < <(yq '.dependencies[] | select(.repository == "file://*") | .repository | sub("^file://", "")' "$chart/Chart.yaml") + + if yq -e '.dependencies' "$chart/Chart.yaml" >/dev/null 2>&1; then + yq -i '(.dependencies[] | select(.repository == "file://*") | .version) = strenv(CHART_VERSION)' "$chart/Chart.yaml" + fi +fi if yq -e '.dependencies' "$chart/Chart.yaml" >/dev/null 2>&1; then - yq -i '(.dependencies[] | select(.repository == "file://*") | .version) = strenv(CHART_VERSION)' "$chart/Chart.yaml" helm dependency build "$chart" >/dev/null fi diff --git a/.config/mise/tasks/github/workflows/release/chart b/.config/mise/tasks/github/workflows/release/chart new file mode 100755 index 00000000..b3c74b32 --- /dev/null +++ b/.config/mise/tasks/github/workflows/release/chart @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +#MISE description="Publish the committed version of the named chart once the image it defaults to exists, skipping with a warning until they do" +set -euo pipefail + +: "${IMAGES_REGISTRY:?set IMAGES_REGISTRY, e.g. ghcr.io/trogonstack/images/atlas}" +name="${1:?usage: chart }" + +image="$IMAGES_REGISTRY/$(yq '.name + ":" + .appVersion' "$MISE_PROJECT_ROOT/devops/helm/charts/$name/Chart.yaml")" + +if ! lookup="$(crane manifest "$image" 2>&1 >/dev/null)"; then + if grep -qE 'MANIFEST_UNKNOWN|NAME_UNKNOWN|DENIED' <<<"$lookup"; then + echo "::warning title=$name not released::$image does not exist yet, the chart is published by a later run once the image is released" + exit 0 + fi + echo "$lookup" >&2 + exit 1 +fi + +exec mise run github:workflows:publish:chart "$name" diff --git a/.config/release-please/config.json b/.config/release-please/config.json new file mode 100644 index 00000000..5cca511b --- /dev/null +++ b/.config/release-please/config.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "packages": { + "devops/helm/charts/trogon-atlas-server": { + "release-type": "helm" + }, + "devops/helm/charts/trogon-atlas-studio": { + "release-type": "helm" + } + } +} diff --git a/.config/release-please/manifest.json b/.config/release-please/manifest.json new file mode 100644 index 00000000..b777530a --- /dev/null +++ b/.config/release-please/manifest.json @@ -0,0 +1,4 @@ +{ + "devops/helm/charts/trogon-atlas-server": "1.0.2", + "devops/helm/charts/trogon-atlas-studio": "1.0.1" +} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 9e0d78f8..a839b360 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -116,3 +116,15 @@ jobs: CHART: ${{ matrix.chart }} COMMIT: ${{ github.sha }} run: mise run github:workflows:publish:chart "$CHART" "0.0.0-sha-$COMMIT" "$COMMIT" + + release-charts: + name: Charts + needs: runs-on + if: github.ref == 'refs/heads/main' + permissions: + contents: read + packages: write + uses: ./.github/workflows/release-charts.yml + with: + runs-on: ${{ needs.runs-on.outputs.runs-on }} + ref: ${{ github.sha }} diff --git a/.github/workflows/release-charts.yml b/.github/workflows/release-charts.yml new file mode 100644 index 00000000..85fff7f2 --- /dev/null +++ b/.github/workflows/release-charts.yml @@ -0,0 +1,59 @@ +name: Release charts + +on: + workflow_call: + inputs: + runs-on: + description: Runner label for the chart jobs + type: string + required: true + ref: + description: Ref to read the committed chart versions from + type: string + required: true + +permissions: {} + +jobs: + charts: + name: Release (${{ matrix.chart }}) + runs-on: ${{ inputs.runs-on }} + permissions: + contents: read + packages: write + strategy: + fail-fast: false + matrix: + chart: + - trogon-atlas-server + - trogon-atlas-studio + + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + ref: ${{ inputs.ref }} + persist-credentials: false + + - name: Install mise + uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1 + with: + cache: false + + - name: helm registry login + env: + REGISTRY_USERNAME: ${{ github.actor }} + REGISTRY_PASSWORD: ${{ secrets.GITHUB_TOKEN }} + run: printf '%s' "$REGISTRY_PASSWORD" | mise exec -- helm registry login ghcr.io --username "$REGISTRY_USERNAME" --password-stdin + + - name: crane auth login + env: + REGISTRY_USERNAME: ${{ github.actor }} + REGISTRY_PASSWORD: ${{ secrets.GITHUB_TOKEN }} + run: printf '%s' "$REGISTRY_PASSWORD" | mise exec -- crane auth login ghcr.io --username "$REGISTRY_USERNAME" --password-stdin + + - name: release chart + env: + CHARTS_REGISTRY: oci://ghcr.io/trogonstack/charts/atlas + IMAGES_REGISTRY: ghcr.io/trogonstack/images/atlas + CHART: ${{ matrix.chart }} + run: mise run github:workflows:release:chart "$CHART" diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 00000000..309ee2a5 --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,28 @@ +name: Release Please + +on: + push: + branches: + - main + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: false + +permissions: {} + +jobs: + release-please: + name: Release PR + runs-on: ubuntu-latest + permissions: + contents: write + issues: write + pull-requests: write + + steps: + - uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 # v5.0.0 + with: + token: ${{ secrets.GH_PAT_RELEASE_PLEASE_ACTION }} + config-file: .config/release-please/config.json + manifest-file: .config/release-please/manifest.json diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3ec19fb6..2de48421 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -54,39 +54,12 @@ jobs: run: mise run github:workflows:release:image "$IMAGE" "${TAG#v}" "$COMMIT" charts: - name: Chart (${{ matrix.chart }}) + name: Charts needs: [runs-on, images] - runs-on: ${{ needs.runs-on.outputs.runs-on }} permissions: contents: read packages: write - strategy: - fail-fast: false - matrix: - chart: - - trogon-atlas-server - - trogon-atlas-studio - - trogon-atlas - - steps: - - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - with: - persist-credentials: false - - - name: Install mise - uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1 - with: - cache: false - - - name: helm registry login - env: - REGISTRY_USERNAME: ${{ github.actor }} - REGISTRY_PASSWORD: ${{ secrets.GITHUB_TOKEN }} - run: printf '%s' "$REGISTRY_PASSWORD" | mise exec -- helm registry login ghcr.io --username "$REGISTRY_USERNAME" --password-stdin - - - name: publish chart - env: - CHARTS_REGISTRY: oci://ghcr.io/trogonstack/charts/atlas - CHART: ${{ matrix.chart }} - TAG: ${{ github.ref_name }} - run: mise run github:workflows:publish:chart "$CHART" "${TAG#v}" "${TAG#v}" + uses: ./.github/workflows/release-charts.yml + with: + runs-on: ${{ needs.runs-on.outputs.runs-on }} + ref: ${{ github.event.repository.default_branch }} diff --git a/devops/helm/charts/trogon-atlas-server/README.md b/devops/helm/charts/trogon-atlas-server/README.md index 5b757259..078dc34d 100644 --- a/devops/helm/charts/trogon-atlas-server/README.md +++ b/devops/helm/charts/trogon-atlas-server/README.md @@ -16,14 +16,24 @@ is just `auth.tokensFile`. ```bash helm install trogon-atlas-server oci://ghcr.io/trogonstack/charts/atlas/trogon-atlas-server \ - --version 0.0.0-sha- \ + --version \ --set config.natsUrl=nats://my-nats:4222 \ --set auth.token.value=change-me ``` -Every push to `main` publishes this chart to -`oci://ghcr.io/trogonstack/charts/atlas` as `0.0.0-sha-`, with its -images pinned to the same commit. +## Versions + +This chart is published to `oci://ghcr.io/trogonstack/charts/atlas`. Its +version changes only when the chart changes and is independent of the Atlas +version; release-please proposes each bump from the conventional commits that +touch the chart. A release publishes the `version` committed in `Chart.yaml` +once the default image exists, and never replaces a published version. + +Every push to `main` also publishes a dev build as `0.0.0-sha-`, with +its images pinned to the same commit. + +The committed `appVersion` is the default image tag. Set `image.tag` or +`image.digest` to run another image. ## Authentication diff --git a/devops/helm/charts/trogon-atlas-studio/README.md b/devops/helm/charts/trogon-atlas-studio/README.md index e0899147..3129826b 100644 --- a/devops/helm/charts/trogon-atlas-studio/README.md +++ b/devops/helm/charts/trogon-atlas-studio/README.md @@ -11,14 +11,24 @@ here is just `auth.token.value`. ```bash helm install trogon-atlas-studio oci://ghcr.io/trogonstack/charts/atlas/trogon-atlas-studio \ - --version 0.0.0-sha- \ + --version \ --set server.host=trogon-atlas-server \ --set auth.token.value=change-me ``` -Every push to `main` publishes this chart to -`oci://ghcr.io/trogonstack/charts/atlas` as `0.0.0-sha-`, with its -images pinned to the same commit. +## Versions + +This chart is published to `oci://ghcr.io/trogonstack/charts/atlas`. Its +version changes only when the chart changes and is independent of the Atlas +version; release-please proposes each bump from the conventional commits that +touch the chart. A release publishes the `version` committed in `Chart.yaml` +once the default image exists, and never replaces a published version. + +Every push to `main` also publishes a dev build as `0.0.0-sha-`, with +its images pinned to the same commit. + +The committed `appVersion` is the default image tag. Set `image.tag` or +`image.digest` to run another image. ## Pointing at the server From 7a362140e698b73ab67693df29ea88919c01caea Mon Sep 17 00:00:00 2001 From: Yordis Prieto Date: Fri, 16 Oct 2026 22:20:54 -0400 Subject: [PATCH 5/8] fix(release): start chart releases from today and keep the umbrella building as subcharts move Signed-off-by: Yordis Prieto --- .config/release-please/config.json | 1 + devops/helm/charts/trogon-atlas/Chart.yaml | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.config/release-please/config.json b/.config/release-please/config.json index 5cca511b..af7e37b1 100644 --- a/.config/release-please/config.json +++ b/.config/release-please/config.json @@ -1,5 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "bootstrap-sha": "82f754d173a120f2d225f1feecfb779aae6162db", "packages": { "devops/helm/charts/trogon-atlas-server": { "release-type": "helm" diff --git a/devops/helm/charts/trogon-atlas/Chart.yaml b/devops/helm/charts/trogon-atlas/Chart.yaml index b78eede2..53cf4a0f 100644 --- a/devops/helm/charts/trogon-atlas/Chart.yaml +++ b/devops/helm/charts/trogon-atlas/Chart.yaml @@ -12,12 +12,12 @@ sources: - https://github.com/TrogonStack/atlas dependencies: - name: trogon-atlas-server - version: 1.0.2 + version: ">=0.0.0-0" repository: file://../trogon-atlas-server alias: server condition: server.enabled - name: trogon-atlas-studio - version: 1.0.1 + version: ">=0.0.0-0" repository: file://../trogon-atlas-studio alias: studio condition: studio.enabled From 907b6358c7e46548bc88f43f65495c7e7ea71374 Mon Sep 17 00:00:00 2001 From: Yordis Prieto Date: Fri, 16 Oct 2026 22:28:23 -0400 Subject: [PATCH 6/8] fix(release): start each chart's first release from the version it already carries Signed-off-by: Yordis Prieto --- .config/release-please/config.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.config/release-please/config.json b/.config/release-please/config.json index af7e37b1..e82257ad 100644 --- a/.config/release-please/config.json +++ b/.config/release-please/config.json @@ -3,10 +3,12 @@ "bootstrap-sha": "82f754d173a120f2d225f1feecfb779aae6162db", "packages": { "devops/helm/charts/trogon-atlas-server": { - "release-type": "helm" + "release-type": "helm", + "initial-version": "1.0.2" }, "devops/helm/charts/trogon-atlas-studio": { - "release-type": "helm" + "release-type": "helm", + "initial-version": "1.0.1" } } } From e7b11c7beed2e91ac8e9b31fe3b5a186b5be91d6 Mon Sep 17 00:00:00 2001 From: Yordis Prieto Date: Fri, 16 Oct 2026 22:30:34 -0400 Subject: [PATCH 7/8] fix(charts): version the charts as pre-1.0 since they are not stable yet Signed-off-by: Yordis Prieto --- .config/release-please/config.json | 5 +++-- .config/release-please/manifest.json | 4 ++-- devops/helm/charts/trogon-atlas-server/Chart.yaml | 2 +- devops/helm/charts/trogon-atlas-studio/Chart.yaml | 2 +- devops/helm/charts/trogon-atlas/Chart.yaml | 2 +- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.config/release-please/config.json b/.config/release-please/config.json index e82257ad..cb941cb0 100644 --- a/.config/release-please/config.json +++ b/.config/release-please/config.json @@ -1,14 +1,15 @@ { "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", "bootstrap-sha": "82f754d173a120f2d225f1feecfb779aae6162db", + "bump-minor-pre-major": true, "packages": { "devops/helm/charts/trogon-atlas-server": { "release-type": "helm", - "initial-version": "1.0.2" + "initial-version": "0.1.0" }, "devops/helm/charts/trogon-atlas-studio": { "release-type": "helm", - "initial-version": "1.0.1" + "initial-version": "0.1.0" } } } diff --git a/.config/release-please/manifest.json b/.config/release-please/manifest.json index b777530a..0070063c 100644 --- a/.config/release-please/manifest.json +++ b/.config/release-please/manifest.json @@ -1,4 +1,4 @@ { - "devops/helm/charts/trogon-atlas-server": "1.0.2", - "devops/helm/charts/trogon-atlas-studio": "1.0.1" + "devops/helm/charts/trogon-atlas-server": "0.1.0", + "devops/helm/charts/trogon-atlas-studio": "0.1.0" } diff --git a/devops/helm/charts/trogon-atlas-server/Chart.yaml b/devops/helm/charts/trogon-atlas-server/Chart.yaml index 7c75074a..f194fe96 100644 --- a/devops/helm/charts/trogon-atlas-server/Chart.yaml +++ b/devops/helm/charts/trogon-atlas-server/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: trogon-atlas-server description: Event model gRPC and MCP server backed by NATS JetStream type: application -version: 1.0.2 +version: 0.1.0 appVersion: "0.1.0" keywords: - trogon-atlas diff --git a/devops/helm/charts/trogon-atlas-studio/Chart.yaml b/devops/helm/charts/trogon-atlas-studio/Chart.yaml index 24caa5c2..09654de0 100644 --- a/devops/helm/charts/trogon-atlas-studio/Chart.yaml +++ b/devops/helm/charts/trogon-atlas-studio/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: trogon-atlas-studio description: Studio UI for the trogon-atlas event model gRPC server type: application -version: 1.0.1 +version: 0.1.0 appVersion: "0.1.0" keywords: - trogon-atlas diff --git a/devops/helm/charts/trogon-atlas/Chart.yaml b/devops/helm/charts/trogon-atlas/Chart.yaml index 53cf4a0f..dc149e2b 100644 --- a/devops/helm/charts/trogon-atlas/Chart.yaml +++ b/devops/helm/charts/trogon-atlas/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: trogon-atlas description: Event model gRPC and MCP server and studio UI backed by NATS JetStream type: application -version: 1.0.2 +version: 0.1.0 appVersion: "0.1.0" keywords: - trogon-atlas From 895131556baad904939f32ce57f2c2b97226cff1 Mon Sep 17 00:00:00 2001 From: Yordis Prieto Date: Fri, 16 Oct 2026 23:22:20 -0400 Subject: [PATCH 8/8] fix(release): release the image built for the tagged commit even when the tag is annotated Signed-off-by: Yordis Prieto --- .github/workflows/release.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2de48421..616add8b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -50,8 +50,7 @@ jobs: IMAGES_REGISTRY: ghcr.io/trogonstack/images/atlas IMAGE: ${{ matrix.image }} TAG: ${{ github.ref_name }} - COMMIT: ${{ github.sha }} - run: mise run github:workflows:release:image "$IMAGE" "${TAG#v}" "$COMMIT" + run: mise run github:workflows:release:image "$IMAGE" "${TAG#v}" "$(git rev-parse 'HEAD^{commit}')" charts: name: Charts