Skip to content

feat: image build + smoke CI, pin bundled components#12

Draft
JarbasAl wants to merge 53 commits into
devfrom
feat/ci-and-smoke
Draft

feat: image build + smoke CI, pin bundled components#12
JarbasAl wants to merge 53 commits into
devfrom
feat/ci-and-smoke

Conversation

@JarbasAl

Copy link
Copy Markdown
Member

Closes part of #11.

Branch / release-flow fix

  • Default branch was feat/initial. Set repo default to dev and created master from the current tip so the org dev(alpha)->master(stable) flow works.
  • dev was stale (only the initial commit). This branch is cut from the real tip (feat/initial), so merging it fast-forwards dev to current and lands the CI/pinning work in one step. The diff vs dev therefore includes the existing feat/initial content as well as the new changes below.

CI (.github/workflows/build.yml)

  • smoke job: validates every compose/docker-compose*.yml via docker compose config and renders the Buildx Bake graph.
  • build job: builds all images via docker buildx bake (no push) as a PR/push check. Uses bake (not per-Dockerfile docker build) because base-image wiring relies on Bake contexts.
  • publish job: multi-arch build+push on push to dev (alpha) / master (stable), gated on DOCKERHUB_USERNAME/DOCKERHUB_TOKEN secrets being set (skips cleanly otherwise).

Smoke script (scripts/smoke.sh)

  • Same checks CI runs, plus optional --build. Runnable by humans.

Pinning (item 3)

  • cli: hivemind-cli==0.5.1a1, hivemind-core==4.6.0a2 (was unpinned git clone + bare hivemind-core).
  • webchat: hivemind-webchat==0.2.2; matrix-bot: hivemind-matrix-bridge==0.1.1; chatroom: hivemind-flask-chatroom==0.1.0 (were unpinned git clones / inline installs).
  • Base image already SHA-pinned (python:3.13.11-slim-trixie@sha256:...); child images consume the locally-built hivemind-base via bake.
  • Added SAT_* vars to .env-example so the chatroom compose validates.

Verification

  • Docker is unavailable in the authoring sandbox; YAML of the workflow and all 5 compose files validated, and scripts/smoke.sh passes bash -n. Image build + compose config must run in CI (this workflow does so).

🤖 Generated with Claude Code

goldyfruit and others added 30 commits September 10, 2023 20:43
includes https://github.com/JarbasHiveMind/hivemind-http-protocol and https://github.com/JarbasHiveMind/hivemind-audio-binary-protocol since i expect those to become common

note: a hivemind.list similar to OVOS is needed to allow plugins to be installed for usage with binary protocol
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
JarbasAl and others added 20 commits February 14, 2025 03:03
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Add .github/workflows/build.yml: a Buildx Bake based pipeline that
validates the compose files and bake graph (smoke job), builds every
image on PR/push (no push), and publishes multi-arch images on push to
dev (alpha) / master (stable) when Docker Hub credentials are present.
base-image wiring relies on Bake contexts, so the build uses
docker buildx bake rather than per-Dockerfile docker build.

Add scripts/smoke.sh so CI and humans run the same validation:
docker compose config on every compose file, bake --print graph render,
and an optional local --build.

Pin bundled components to released versions instead of unpinned git
clones: hivemind-cli==0.5.1a1 and hivemind-core==4.6.0a2 (cli),
hivemind-webchat==0.2.2 (webchat), hivemind-matrix-bridge==0.1.1
(matrix-bot), hivemind-flask-chatroom==0.1.0 (chatroom). Add the SAT_*
chatroom variables to .env-example so its compose file validates.

Refs #11

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

coderabbitai Bot commented Jun 22, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 92338294-5579-443f-87d3-780a19583823

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/ci-and-smoke

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

JarbasAl and others added 3 commits June 23, 2026 01:35
The listener image pinned three hivemind packages to a contributor's
personal forks (thalovant/*) at ephemeral commits, plus a
hivemind-intent-quota-plugin git ref (51beb55...) that no longer exists —
which broke the buildx bake (uv could not fetch the commit). The official
packages are on PyPI, and hivemind-core==4.6.0a2 already constrains the
plugin-manager/websocket-protocol versions transitively, so the forks were
both fragile and conflicting. Switch to the published packages and drop the
non-existent intent-quota plugin (no JarbasHiveMind repo / PyPI release).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
hivemind-cli 0.5.1a1 requires ovos-bus-client>=2.0.0a3, but
hivemind-core==4.6.0a2 still requires ovos-bus-client<2.0.0 (no released
core supports bus-client 2.x yet — core#108). The cli image build failed
to resolve. Pin 0.5.0a4, the latest CLI alpha still on bus-client <2.0.0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
hivemind-matrix-bridge==0.1.1 requires python-matrixbot>=0.4.0, but that
project only published up to 0.0.7 — the release is uninstallable. 0.1.2a2
corrects the constraint to >=0.0.7, so the matrix-bot image resolves.

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

2 participants