Skip to content

Commit c884ee8

Browse files
tijderclaude
andcommitted
fix: track server appVersion for the migrations image
migrations publishes the same semver as the server, so give it no version line of its own: leave flyway.image.tag empty and let ister.image fall back to .Chart.AppVersion (== server.image.tag). Renovate bumping the server now bumps migrations too, keeping them in lockstep from one source of truth. ci/release-notes.sh mirrors the same fallback so the migrations row shows the deployed version instead of a blank cell. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent d5e5fe1 commit c884ee8

3 files changed

Lines changed: 19 additions & 8 deletions

File tree

CLAUDE.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,16 @@ Automatic, and the details matter before you touch `Chart.yaml`:
6767
- The bump level comes from the commit messages since the last tag: `feat!`/`BREAKING CHANGE`
6868
major, `feat` → minor, everything else (including Renovate's `fix(deps):`) → patch. So commit
6969
messages are functional here, not decoration.
70-
- The three ister images have **independent version lines** in `values.yaml`; they do not move in
71-
lockstep, and `appVersion` speaks only for the server.
70+
- `server` and `player` have **independent version lines** in `values.yaml`; they do not move in
71+
lockstep. `migrations` is the exception: it publishes the same semver as the server, so its
72+
`flyway.image.tag` is left **empty** and `ister.image` falls back to `.Chart.AppVersion` (which
73+
is `server.image.tag`). Renovate bumping the server therefore bumps migrations too — one source
74+
of truth. `ci/release-notes.sh` mirrors that fallback so the migrations row is never blank.
7275
- Renovate (`renovate.json`), not Dependabot — Dependabot's docker manager cannot tell two images
7376
in one `values.yaml` apart when they share a tag string (dependabot-core#6891).
7477

75-
`server` and `player` now publish semver tags: `values.yaml` pins both at `1.0.0` and Renovate
76-
bumps them from there. `migrations` still publishes only `:main`, so its `tag` stays `"main"`
77-
until it cuts a real release.
78+
`server` and `player` publish semver tags: `values.yaml` pins both at `1.0.0` and Renovate bumps
79+
them from there. `migrations` has no `tag` of its own — see the appVersion note above.
7880

7981
## Conventions
8082

ci/release-notes.sh

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,20 @@ print(doc)
3737
}
3838
img() { yaml values.yaml "$1"; }
3939

40+
# migrations has no tag of its own: it rides .Chart.AppVersion (== server version), the same
41+
# fallback ister.image does when flyway.image.tag is empty. Mirror it here so the table shows
42+
# the version actually deployed rather than a blank cell.
43+
mig_tag="$(img flyway.image.tag)"
44+
[ -n "$mig_tag" ] || mig_tag="$(img server.image.tag)"
45+
4046
{
4147
echo "## ister-chart v${VERSION}"
4248
echo
4349
echo "| Component | Image | Version |"
4450
echo "|---|---|---|"
4551
echo "| server | \`$(img server.image.repository)\` | $(img server.image.tag) |"
4652
echo "| website | \`$(img website.image.repository)\` | $(img website.image.tag) |"
47-
echo "| migrations | \`$(img flyway.image.repository)\` | $(img flyway.image.tag) |"
53+
echo "| migrations | \`$(img flyway.image.repository)\` | ${mig_tag} |"
4854
echo "| database | \`$(img database.internal.image.repository)\` | $(img database.internal.image.tag) |"
4955
echo "| typesense | \`$(img typesense.image.repository)\` | $(img typesense.image.tag) |"
5056
echo "| rabbitmq | subchart \`bitnamicharts/rabbitmq\` | $(python3 -c '

values.yaml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -398,8 +398,11 @@ flyway:
398398
enabled: true
399399
image:
400400
repository: ghcr.io/ister-app/migrations
401-
# Versioned independently of the server — see the note on server.image.tag.
402-
tag: "main"
401+
# migrations publishes the same semver as the server, so it has no version line of its
402+
# own: an empty tag makes ister.image fall back to .Chart.AppVersion, which release.yml
403+
# derives from server.image.tag. Renovate bumping the server therefore bumps migrations
404+
# too — one source of truth, always in lockstep.
405+
tag: ""
403406
digest: ""
404407
pullPolicy: IfNotPresent
405408
# Image for the wait-for-db init container; needs pg_isready.

0 commit comments

Comments
 (0)