Skip to content

Commit 51de5b9

Browse files
authored
feat(ralphex-fe): let Renovate bump Bun and Hugo; drop the manual push workflow (#134)
ralphex-fe has no mise, and its published tag is literally bun<BUN>-hugo<HUGO>, so Bun and Hugo are image-level versions with nowhere else to be set. They were the only pinned ARGs in the repo without a `# renovate:` annotation, and that absence is the sole reason update-and-build-ralphex-fe.yml existed. Annotated both and grouped them as "ralphex-fe toolchain" with automerge and the same 3-day soak the non-claude agent tools get. Bun uses the npm datasource because oven-sh/bun tags releases as "bun-v1.4.2", which the existing github-releases extractVersion does not strip; the npm package publishes bare semver that matches the ARG format directly. update-and-build-ralphex-fe.yml is deleted rather than fixed. It took version inputs, rewrote the Dockerfile, and pushed the commit straight to master as github-actions[bot] -- the one direct-push path in the repo, and the reason a branch ruleset needed a bypass actor that GitHub does not offer for Actions. Renovate now covers what it did, and build-ralphex-fe.yml already has workflow_dispatch for manual rebuilds, so nothing is lost except the push-to-master. README sections that documented driving that workflow are replaced with how to force a rebuild and how to change a pinned version (edit the ARG, open a PR). Note the first Renovate PR will be a real jump: Bun 1.3.9 -> 1.4.2 and Hugo 0.156.0 -> 0.166.0. Verified: actionlint clean; hadolint clean on ralphex-fe/Dockerfile; renovate-config-validator "Config validated successfully"; and the customManager matchString exercised against both Dockerfiles in Python -- it now extracts bun/npm/1.3.9 and gohugoio/hugo/github-releases/0.156.0 alongside the four existing tools.
1 parent 945219c commit 51de5b9

5 files changed

Lines changed: 26 additions & 189 deletions

File tree

‎.github/renovate.json5‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,5 +61,17 @@
6161
matchPackageNames: ['@anthropic-ai/claude-code'],
6262
minimumReleaseAge: null,
6363
},
64+
{
65+
// ralphex-fe bakes its toolchain into the image — it has no mise, and
66+
// its published tag is literally bun<BUN>-hugo<HUGO>. So these are
67+
// image-level versions, not per-project ones, and there is no other
68+
// place to set them. Bun uses the npm datasource because oven-sh/bun
69+
// tags releases as "bun-v1.4.2", which the github-releases extractVersion
70+
// above does not strip.
71+
matchPackageNames: ['bun', 'gohugoio/hugo'],
72+
groupName: 'ralphex-fe toolchain',
73+
automerge: true,
74+
minimumReleaseAge: '3 days',
75+
},
6476
],
6577
}

‎.github/workflows/update-and-build-ralphex-fe.yml‎

Lines changed: 0 additions & 156 deletions
This file was deleted.

‎README.md‎

Lines changed: 9 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -183,43 +183,22 @@ issue tracks what is pending. Everything else — including base images and Bun/
183183
> Setting `mode` in `renovate.json5` cannot substitute for the Silent-mode toggle, because `dryRun`
184184
> takes precedence over `mode` and is admin-level.
185185
186-
### Via GitHub UI
186+
### Manual rebuilds
187187

188-
Some images have automated update workflows that allow you to update dependency versions without manually editing Dockerfiles:
189-
190-
1. Go to **Actions** tab → Select the update workflow (e.g., "Update and Build ralphex-fe")
191-
2. Click **Run workflow**
192-
3. Enter new versions (e.g., Bun 1.4.0, Hugo 0.156.0)
193-
4. Click **Run workflow** button
194-
195-
The workflow will:
196-
- Update the Dockerfile with new versions
197-
- Commit the changes to the repository
198-
- Build and push the updated image
199-
200-
### Via GitHub CLI
201-
202-
If you have the [GitHub CLI](https://cli.github.com/) installed, you can trigger updates from your terminal:
188+
Every image has a `workflow_dispatch` trigger, so a rebuild can be forced without a code change:
203189

204190
```bash
205-
# Update ralphex-fe image versions
206-
gh workflow run update-and-build-ralphex-fe.yml \
207-
-f bun_version=1.4.0 \
208-
-f hugo_version=0.156.0
191+
# Rebuild one image from current master
192+
gh workflow run build-ralphex-fe.yml
209193

210-
# Update without building (just commit to repo)
211-
gh workflow run update-and-build-ralphex-fe.yml \
212-
-f bun_version=1.4.0 \
213-
-f hugo_version=0.156.0 \
214-
-f update_only=true
215-
216-
# Check workflow status
217-
gh run list --workflow=update-and-build-ralphex-fe.yml
218-
219-
# Watch the latest run in real-time
194+
# Check status / watch
195+
gh run list --workflow=build-ralphex-fe.yml
220196
gh run watch
221197
```
222198

199+
To change a pinned version, edit the `ARG` in that image's Dockerfile and open a PR — the merge
200+
triggers the build. There is no longer a workflow that rewrites Dockerfiles and pushes to `master`.
201+
223202
**Install GitHub CLI:**
224203
```bash
225204
# macOS

‎ralphex-fe/Dockerfile‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
# renovate: datasource=npm depName=bun
12
ARG BUN_VERSION=1.3.9
23
ARG DOCKER_VERSION=29.3.0
34
ARG GO_VERSION=1.24.4
5+
# renovate: datasource=github-releases depName=gohugoio/hugo
46
ARG HUGO_VERSION=0.156.0
57

68
# ═════════════════════════════════════════════════════════════════════════════

‎ralphex-fe/README.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ This is a standalone image, not a devcontainer.
2121
| Ralphex | 1.6.0 (pinned) |
2222
| Git, ripgrep, jq, curl, wget | system |
2323

24-
The pinned versions live as `ARG`s in the Dockerfile and are kept current by Renovate — see
25-
[Automatic Rebuilds](#automatic-rebuilds). Bun and Hugo are bumped manually via the
26-
`update-and-build-ralphex-fe.yml` workflow.
24+
All pinned versions live as `ARG`s in the Dockerfile and are kept current by Renovate — see
25+
[Automatic Rebuilds](#automatic-rebuilds). This image has no `mise`, so its Bun and Hugo are
26+
image-level versions rather than per-project ones; Renovate tracks them like everything else.
2727

2828
## Usage
2929

0 commit comments

Comments
 (0)