Skip to content

fix(ralphex-fe): rebuild daily for latest ralphex/rtk + repair update workflow - #113

Merged
gatezh merged 2 commits into
masterfrom
ralphex-image-rebuild-schedule
Jun 10, 2026
Merged

gatezh merged 2 commits into
masterfrom
ralphex-image-rebuild-schedule

Conversation

@gatezh

@gatezh gatezh commented Jun 10, 2026

Copy link
Copy Markdown
Owner

What

Adds a daily scheduled rebuild to the ralphex-fe image and repairs the now-dead manual version-bump workflow.

Why

ralphex-fe was expected to rebuild daily — like claude-code — so it picks up the latest ralphex and rtk releases (both pulled from GitHub releases/latest at build time). But build-ralphex-fe.yml never had a schedule: trigger. Nothing broke; the cron was simply never wired up, so the published ralphex-fe:latest had been frozen since its last Dockerfile change (2026-04-14, ~2 months stale).

While in here, update-and-build-ralphex-fe.yml was found to be silently broken: it greps for ARG RALPHEX_VERSION, which the Dockerfile dropped when ralphex switched to dynamic latest pulling. Every dispatch failed at the extract step (exit 1).

For context, the RTK v0.36.0 GDPR-consent-hang fix (the prior "rtk broke the build" episode) was already present in ralphex-fe/init-docker.sh — this PR does not touch it.

Changes

  • build-ralphex-fe.yml: add schedule: cron '41 11 * * *' (mirrors build-claude-code.yml; offset from its 11:13 to avoid hitting the GitHub API the same minute).
  • update-and-build-ralphex-fe.yml: remove the obsolete ralphex_version input/output/env/sed/grep, and realign the version-tag to bun<v>-hugo<v> to match build-ralphex-fe.yml. The Bun/Hugo manual-bump path is kept intact.

Notes

  • Scheduled workflows only fire from the default branch, so the daily rebuild begins after this merges to master.
  • Both workflows pass actionlint locally (the same check CI runs on .github/workflows/**).

gatezh added 2 commits June 10, 2026 08:51
- Add schedule cron trigger (mirrors build-claude-code.yml) so the image
  rebuilds daily and bakes in the newest ralphex and rtk releases, which
  the Dockerfile pulls from GitHub "latest" at build time.
- Previously only push/workflow_dispatch fired, so the published image
  was only as fresh as the last Dockerfile change (~2 months stale).
- Offset cron to 11:41 UTC to avoid hitting the GitHub API the same
  minute as claude-code's 11:13 rebuild.
The Dockerfile no longer pins ARG RALPHEX_VERSION (ralphex is pulled from
GitHub "latest" at build time), so the workflow's grep for it returned
empty and failed the extract step (exit 1) on every dispatch.

- Remove the ralphex_version input, output, env, sed, and grep.
- Realign the version-tag to bun<v>-hugo<v>, matching build-ralphex-fe.yml.
- Keep the still-valid Bun/Hugo manual version-bump path intact.
@gatezh
gatezh merged commit 063ddaa into master Jun 10, 2026
8 checks passed
gatezh added a commit that referenced this pull request Aug 11, 2026
The cron landed on master in #113, after this branch was cut, so merging
master back in reintroduced it. Git saw no conflict — this branch simply
predates the cron — which is exactly how a no-op rebuild would have
survived the PR unnoticed.

Its own comment justified it by the Dockerfile resolving ralphex/rtk from
GitHub "latest" at build time; those versions are now pinned ARGs that
Renovate bumps, so the cron would rebuild byte-identical images daily.
gatezh added a commit that referenced this pull request Aug 13, 2026
…#116)

* docs(renovate): design spec for Renovate-driven image rebuilds

Replace the daily rebuild crons for claude-code and ralphex-fe with
pinned tool versions managed by Renovate; rebuild only on a real
version bump. Mend-hosted app, scope limited to rtk/ralphex/
claude-code/agent-browser, auto-merge gated on CI (which gains
claude-code, both targets).

* docs(renovate): move config to .github/renovate.json5

* docs(renovate): implementation plan for Renovate-driven rebuilds

* feat(claude-code): pin rtk/ralphex/claude-code/agent-browser for Renovate

* feat(ralphex-fe): pin rtk/ralphex/claude-code for Renovate

* ci(renovate): add config to pin and auto-update devcontainer agent tools

* ci: build and verify claude-code (default + sandbox) on PRs

* ci: drop daily rebuild crons (Renovate triggers rebuilds now)

* docs(plan): add .hadolint.yaml comment fix to Task 6

* docs: describe Renovate-driven rebuilds instead of daily cron

* fix(renovate): scope to custom.regex manager, tolerant v-prefix, tidy header

* ci(ralphex-fe): drop daily rebuild cron carried in by master merge

The cron landed on master in #113, after this branch was cut, so merging
master back in reintroduced it. Git saw no conflict — this branch simply
predates the cron — which is exactly how a no-op rebuild would have
survived the PR unnoticed.

Its own comment justified it by the Dockerfile resolving ralphex/rtk from
GitHub "latest" at build time; those versions are now pinned ARGs that
Renovate bumps, so the cron would rebuild byte-identical images daily.
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