ci(docker): publish a ps5upload-engine-webui image alongside the plain engine#187
Open
Twice6804 wants to merge 1 commit into
Open
ci(docker): publish a ps5upload-engine-webui image alongside the plain engine#187Twice6804 wants to merge 1 commit into
Twice6804 wants to merge 1 commit into
Conversation
…n engine The webui Cargo feature + Dockerfile.webui (merged in phantomptr#171/phantomptr#186) had no CI publish path — docker-engine.yml only ever built engine/Dockerfile, so ghcr.io/phantomptr/ps5upload-engine never gained the browser UI no matter how many releases shipped it in the source tree. Adds a second multi-arch image, ps5upload-engine-webui, built from Dockerfile.webui with the repo root as build context (it needs to build client/ before the Rust build embeds the output). Mirrors the existing verify/build/merge pipeline exactly, published in lockstep with the plain engine image on every v* tag. PR triggers now also watch client/** since the webui image build depends on the frontend. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
The
webuiCargo feature andengine/Dockerfile.webui(merged in #171,extended in #186) had no CI publish path.
docker-engine.ymlonly everbuilds
engine/Dockerfile, soghcr.io/phantomptr/ps5upload-enginenever gains the browser web UI no matter how many version tags ship it
in the source tree — someone has to build
Dockerfile.webuiby handtoday to get an image with it.
This adds a second published image,
ghcr.io/phantomptr/ps5upload-engine-webui,built from
Dockerfile.webui, published in lockstep with the plainengine image on every release tag.
Type of Change
Changes Made
.github/workflows/docker-engine.yml:verify-webuijob — PR-time build-only smoke check ofDockerfile.webui(root context), mirroring the existingverifyjob for the plain engine.resolvejob now also derivesimage_webui = ghcr.io/<owner>/ps5upload-engine-webui.build-webuijob — per-arch (amd64+arm64) digest build/push ofDockerfile.webui, mirroringbuild. Uses a distinctwebui-digests-artifact prefix (not just awebui-infix) so the plain engine'smergejob — whosepattern: digests-*glob only matches names starting withdigests-— can't accidentally fold a webui digest into the minimal image's manifest. Uses a separate buildx cache scope (webui-<platform>) so the two Dockerfiles don't thrash each other's layer cache.merge-webuijob — merges the webui per-arch digests into a multi-arch manifest tagged<version>,<major.minor>, andlatest, same scheme as the plain engine.client/**(previously onlyengine/**), since the webui image's build depends on the frontend, not just the engine crate — a client-only PR can breakDockerfile.webui's build without touchingengine/.v*tag push orworkflow_dispatch— one release cuts both.Documentation Updates
Did you update the documentation? [ ] Yes [x] No
If no documentation updates: this is a CI/publish-pipeline change only — no user-facing behavior changes until the next version tag actually publishes the new image. The self-hosted README section documenting
ghcr.io/phantomptr/ps5upload-engine-webuiusage is still planned as a follow-up alongside capability gating (per #171/#186's "Additional Notes").Testing
npm run validatenpm run coveragepython3 -c "import yaml; yaml.safe_load(...)"and withactionlint(downloaded the v1.7.12 release binary locally, since it's not preinstalled here); both clean, including a clean baseline run across all three existing workflow files.webui-digests-<platform>does not match the existingmergejob'spattern: digests-*glob (which only matches names starting withdigests-), so the two merge jobs can't cross-contaminate each other's manifest.Not tested: an actual live run of this workflow (that requires a real tag push /
workflow_dispatchon the upstream repo with GHCR push permissions, which I can't do from here). The structure is a mechanical mirror of the existing, already-provenverify/build/mergejobs — same actions, same steps, onlycontext/file/image/artifact-name/cache-scope differ.Checklist
Additional Notes
Once this merges, the webui image will start publishing from the next version tag pushed — it won't retroactively backfill
:latest(or any other tag) from past releases. If you want an image available sooner than the next natural release,gh workflow run docker-engine.yml -f tag=<existing-tag>can re-run publishing for an already-tagged version once this workflow change is onmain.🤖 Generated with Claude Code