FROM jcabillot/opencode:latest flotte sur le tag poussé par le workflow de release de perso/opencode, qui n'est jamais rebuild ensuite :
jcabillot/opencode:latest = dernier build de release, figé au 2026-10-14 (Node 26.11.1, label v0.0.59)
jcabillot/opencode:v0.0.60-latest = la release v0.0.60, rebuild chaque nuit par cron.yaml
Renovate ignore les dépendances :latest -> l'image de base ne pouvait jamais être bumpée automatiquement.
Changement
FROM jcabillot/opencode:v0.0.60-latest : version OpenCode explicite dans le Dockerfile, base/npm rafraîchis à chaque rebuild nightly.
Suppression du # hadolint ignore=DL3007 : la règle ne se déclenche que sur :latest (vérifié avec hadolint 2.13.1 : nouveau Dockerfile exit=0 sans l'ignore, l'ancien tag sort bien le warning).
renovate.jsoninchangé : le custom manager jcabillot/opencode (datasource docker) suit déjà correctement la convention -latest.
CI (run 12215, re-run)
CI Shared Jobs / hadolint : success (12 s)
CI Shared Jobs / build-test : success (3m32) — log : FROM docker.io/jcabillot/opencode:v0.0.60-latest@sha256:bc9ed7bc…, puis HTTP status: 200, PASS: HTTP 200, 1/1 tests passed
Le 1er essai de ce commit a échoué sur opencode:v0.0.60-latest: not found : le tag a été publié à 19:53:27 UTC, une trentaine de secondes après le démarrage du job. Re-run vert, aucun changement de code.
Autres vérifications
Renovate en dry-run local (--platform=local --dry-run=lookup, Renovate 44.166.0) :
FROM ...:v0.0.58-latest -> newValue: v0.0.59-latest (updateType patch) : les bumps à venir restent dans la famille -latest.
FROM ...:v0.0.59-latest -> aucune update sur jcabillot/opencode (pas de PR parasite) ; seul le bump npm @openchamber/web reste détecté.
Images au registre : USER/WORKDIR/ENTRYPOINT identiques entre latest et vX.Y.Z-latest (seul le contenu de base diffère).
Note
Cette base est la release OpenCode 2 (@opencode/cli 2.0.32, migration perso/opencode#75) : l'API REST a changé (/api/*). Le test CI valide le build + le service de l'UI openchamber (HTTP 200), pas la compatibilité API openchamber <-> opencode v2.
## Problème
`FROM jcabillot/opencode:latest` flotte sur le tag poussé par le workflow de release de `perso/opencode`, qui n'est **jamais rebuild** ensuite :
- `jcabillot/opencode:latest` = dernier build de release, figé au **2026-10-14** (Node 26.11.1, label `v0.0.59`)
- `jcabillot/opencode:v0.0.60-latest` = la release v0.0.60, rebuild **chaque nuit** par `cron.yaml`
- Renovate **ignore les dépendances `:latest`** -> l'image de base ne pouvait jamais être bumpée automatiquement.
## Changement
- `FROM jcabillot/opencode:v0.0.60-latest` : version OpenCode explicite dans le Dockerfile, base/npm rafraîchis à chaque rebuild nightly.
- Suppression du `# hadolint ignore=DL3007` : la règle ne se déclenche que sur `:latest` (vérifié avec hadolint 2.13.1 : nouveau Dockerfile `exit=0` sans l'ignore, l'ancien tag sort bien le warning).
- `renovate.json` **inchangé** : le custom manager `jcabillot/opencode` (datasource docker) suit déjà correctement la convention `-latest`.
## CI (run 12215, re-run)
- `CI Shared Jobs / hadolint` : success (12 s)
- `CI Shared Jobs / build-test` : success (3m32) — log : `FROM docker.io/jcabillot/opencode:v0.0.60-latest@sha256:bc9ed7bc…`, puis `HTTP status: 200`, `PASS: HTTP 200`, `1/1 tests passed`
- Le 1er essai de ce commit a échoué sur `opencode:v0.0.60-latest: not found` : le tag a été publié à 19:53:27 UTC, une trentaine de secondes après le démarrage du job. Re-run vert, aucun changement de code.
## Autres vérifications
- Renovate en dry-run local (`--platform=local --dry-run=lookup`, Renovate 44.166.0) :
- `FROM ...:v0.0.58-latest` -> `newValue: v0.0.59-latest` (updateType patch) : les bumps à venir restent dans la famille `-latest`.
- `FROM ...:v0.0.59-latest` -> **aucune update** sur `jcabillot/opencode` (pas de PR parasite) ; seul le bump npm `@openchamber/web` reste détecté.
- Images au registre : `USER`/`WORKDIR`/`ENTRYPOINT` identiques entre `latest` et `vX.Y.Z-latest` (seul le contenu de base diffère).
## Note
Cette base est la release **OpenCode 2** (`@opencode/cli 2.0.32`, migration `perso/opencode#75`) : l'API REST a changé (`/api/*`). Le test CI valide le build + le service de l'UI openchamber (HTTP 200), **pas** la compatibilité API openchamber <-> opencode v2.
opencodecabilloteu
requested review from jcabillot 2026-10-17 15:47:37 -04:00
`FROM jcabillot/opencode:latest` floats on the tag pushed by perso/opencode's
release workflow, which is never rebuilt afterwards: it is still the 2026-10-14
build while the nightly cron keeps rebuilding `vX.Y.Z-latest`. Renovate also
ignores `:latest` dependencies, so the base image could never be bumped.
Pin `v0.0.60-latest` (released from perso/opencode main, rebuilt nightly by
cron.yaml): fresh Debian/npm packages, explicit OpenCode version in the
Dockerfile, and Renovate can now follow the bumps.
The DL3007 hadolint ignore is dropped: that rule only fires on `:latest`.
opencodecabilloteu
changed title from ci(docker): pin base image on opencode's versioned nightly tag (v0.0.59-latest) to ci(docker): pin base image on opencode's versioned nightly tag (v0.0.60-latest)2026-10-17 15:58:31 -04:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Problème
FROM jcabillot/opencode:latestflotte sur le tag poussé par le workflow de release deperso/opencode, qui n'est jamais rebuild ensuite :jcabillot/opencode:latest= dernier build de release, figé au 2026-10-14 (Node 26.11.1, labelv0.0.59)jcabillot/opencode:v0.0.60-latest= la release v0.0.60, rebuild chaque nuit parcron.yaml:latest-> l'image de base ne pouvait jamais être bumpée automatiquement.Changement
FROM jcabillot/opencode:v0.0.60-latest: version OpenCode explicite dans le Dockerfile, base/npm rafraîchis à chaque rebuild nightly.# hadolint ignore=DL3007: la règle ne se déclenche que sur:latest(vérifié avec hadolint 2.13.1 : nouveau Dockerfileexit=0sans l'ignore, l'ancien tag sort bien le warning).renovate.jsoninchangé : le custom managerjcabillot/opencode(datasource docker) suit déjà correctement la convention-latest.CI (run 12215, re-run)
CI Shared Jobs / hadolint: success (12 s)CI Shared Jobs / build-test: success (3m32) — log :FROM docker.io/jcabillot/opencode:v0.0.60-latest@sha256:bc9ed7bc…, puisHTTP status: 200,PASS: HTTP 200,1/1 tests passedopencode:v0.0.60-latest: not found: le tag a été publié à 19:53:27 UTC, une trentaine de secondes après le démarrage du job. Re-run vert, aucun changement de code.Autres vérifications
--platform=local --dry-run=lookup, Renovate 44.166.0) :FROM ...:v0.0.58-latest->newValue: v0.0.59-latest(updateType patch) : les bumps à venir restent dans la famille-latest.FROM ...:v0.0.59-latest-> aucune update surjcabillot/opencode(pas de PR parasite) ; seul le bump npm@openchamber/webreste détecté.USER/WORKDIR/ENTRYPOINTidentiques entrelatestetvX.Y.Z-latest(seul le contenu de base diffère).Note
Cette base est la release OpenCode 2 (
@opencode/cli 2.0.32, migrationperso/opencode#75) : l'API REST a changé (/api/*). Le test CI valide le build + le service de l'UI openchamber (HTTP 200), pas la compatibilité API openchamber <-> opencode v2.39b37ea985to32c3855d07ci(docker): pin base image on opencode's versioned nightly tag (v0.0.59-latest)to ci(docker): pin base image on opencode's versioned nightly tag (v0.0.60-latest)