Skip to content

Publish ci-static-containter-builder to GHCR (container + smoke test) - #3

Merged
mrhegemon merged 1 commit into
mainfrom
feat/ghcr-publish
Jun 7, 2026
Merged

mrhegemon merged 1 commit into
mainfrom
feat/ghcr-publish

Conversation

@mrhegemon

Copy link
Copy Markdown
Member

Publish ci-static-containter-builder to GHCR for the CI marketplace

The marketplace lists ghcr.io/companionintelligence/ci-static-containter-builder:latest, but this repo never built or pushed that image — so the store listing 404s and the app cannot install on appliance Hubs. This PR adds the missing publish pipeline.

What is in this PR

  • .github/workflows/docker-publish.yml — on push to main (and tags) builds the image, runs a smoke test gate, then pushes :latest + :sha-<short> to GHCR. PRs run build + gate without publishing.
  • Container build.
  • Added a minimal public/index.html status page (repo had no ./public for its existing nginx Dockerfile to bake).

Required one-time step after merge

GitHub creates Actions-published GHCR packages private. After the first publish an org owner must flip visibility to Public once (persists thereafter):
https://github.com/orgs/companionintelligence/packages/container/ci-static-containter-builder/settings -> Danger Zone -> Change visibility -> Public. Until then the image exists but anonymous appliance pulls get 403.

🤖 Generated with Claude Code

Containerize as ghcr.io/companionintelligence/ci-static-containter-builder so the CI marketplace
listing resolves. The publish workflow builds the image, smoke-tests that it
serves over HTTP on the Hub internalPort (80), then pushes :latest +
:sha-<short> to GHCR. (Utility service — no web UI, so smoke test not screenshot.)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 58ce33a73e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

set -euo pipefail
short="$(git rev-parse --short HEAD)"
echo "sha_tag=${IMAGE_NAME}:sha-${short}" >> "$GITHUB_OUTPUT"
tags="${IMAGE_NAME}:latest,${IMAGE_NAME}:sha-${short}"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Restrict latest to main publishes

Because this workflow also runs for tag pushes and manual dispatches, initializing every publish with :latest means a release tag or a manually dispatched run from a non-main ref will overwrite the marketplace image that consumers pull as latest. If a maintainer tags an older commit or dispatches this workflow on a branch, GHCR can roll back ghcr.io/companionintelligence/ci-static-containter-builder:latest; only add :latest for main-branch publishes and use tag-specific tags for tag builds.

Useful? React with 👍 / 👎.

@mrhegemon
mrhegemon merged commit 3de3906 into main Jun 7, 2026
1 check passed
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