Skip to content

feat(ci): publish the remo-web image for a pre-release (rc-image.yml) - #199

Merged
pofallon merged 1 commit into
mainfrom
ci/rc-image
Sep 4, 2026
Merged

pofallon merged 1 commit into
mainfrom
ci/rc-image

Conversation

@pofallon

@pofallon pofallon commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

What / why

The RC lane (dev-build.yml) produces a promotable wheel and a GitHub pre-release under an rc-* tag, which release.yml (tags: v*) deliberately ignores. So a pre-release has a wheel but no container image: ghcr.io/get2knowio/remo-web stops at the last v* release (4.3.6 today; the newest pre-release image tag is 2.2.0-rc13). Nothing Compose-based can pin 4.4.0rc1, including a Hola catalog bundle on a pre-release channel (try-hola/apps#149, try-hola/hola ADR 0005).

Change

  • rc-image.yml (new): workflow_dispatch (version, optional ref defaulting to rc-<version>) and workflow_call. Validates a PEP 440 pre-release/dev version (final versions refused), checks out the ref, stamps pyproject.toml exactly as dev-build.yml does, and builds/pushes docker/Dockerfile for linux/amd64,linux/arm64 as ghcr.io/<owner>/remo-web:<version>, using the same pinned actions as release.yml. latest is never produced (flavor: latest=false, a single raw tag). The job summary prints the digest-pinned reference.
  • dev-build.yml: new image boolean input (requires prerelease=true); a third job calls rc-image.yml with the build's version and github.sha, so future RCs get wheel + image from the same commit.
  • CLAUDE.md / AGENTS.md: the two new invocations and one sentence in the RC paragraph.

Nothing here publishes to PyPI or creates a tag.

Verification

  • Both workflows parse (yaml load: jobs publish-image; build,prerelease,image).
  • Not exercised in Actions yet — the first run will be gh workflow run rc-image.yml -f version=4.4.0rc1 against the existing rc-4.4.0rc1 tag after merge.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Vck5KSX2CLxhohx14nb5Sh

The RC lane (dev-build.yml) builds a promotable wheel and attaches it to a
GitHub pre-release under an `rc-*` tag, which release.yml (`tags: v*`)
deliberately does not match. That left every pre-release with a wheel but no
container image: ghcr.io/get2knowio/remo-web stops at the last `v*` release,
so nothing Compose-based (e.g. a Hola catalog bundle on a `beta` channel)
can pin an RC.

Add rc-image.yml: builds docker/Dockerfile at a given ref with pyproject.toml
stamped to the requested PEP 440 pre-release version (the same stamp
dev-build.yml applies before `uv build`), pushes a multi-arch
`ghcr.io/<owner>/remo-web:<version>` and prints the digest to the job
summary for pinning. `latest` is never produced (flavor latest=false, single
raw tag); final versions are refused so it can never shadow release.yml.
Dispatchable on its own for an existing `rc-<version>` tag, and callable from
dev-build.yml via a new `image=true` input (requires `prerelease=true`) so
future RCs get wheel + image from the same commit.

Nothing here publishes to PyPI or creates a tag.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vck5KSX2CLxhohx14nb5Sh
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