Skip to content

ci: build and publish the dashboard image to GHCR - #69

Merged
RedStar071 merged 7 commits into
mainfrom
claude/dockerfile-github-cd-workflow-s49dsg
Sep 26, 2026
Merged

RedStar071 merged 7 commits into
mainfrom
claude/dockerfile-github-cd-workflow-s49dsg

Conversation

@RedStar071

@RedStar071 RedStar071 commented Sep 23, 2026 •

Copy link
Copy Markdown
Member

Add a multi-stage Dockerfile that builds apps/dashboard with the
self-hosted node preset and ships only the Nitro .output bundle, plus a
cd workflow modelled on wolfstar-project/.github's reusable publish
workflow: native amd64/arm64 builds pushed by digest, merged into one
manifest list on ghcr.io. The image listens on $PORT, so it runs on
Docker and Railway unchanged.

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_016Xv8HFiGBXf14HBy5yko6J

RetriggerConfidence Score: 5/5

Safe to merge.

Reviews (4) · Last reviewed commit: "Merge branch 'main' into claude/dockerfi..."

Add a multi-stage Dockerfile that builds apps/dashboard with the
self-hosted node preset and ships only the Nitro .output bundle, plus a
cd workflow modelled on wolfstar-project/.github's reusable publish
workflow: native amd64/arm64 builds pushed by digest, merged into one
manifest list on ghcr.io. The image listens on $PORT, so it runs on
Docker and Railway unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016Xv8HFiGBXf14HBy5yko6J
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016Xv8HFiGBXf14HBy5yko6J
@coldtea-pr-lens

Copy link
Copy Markdown

◈ PR Lens

Note

The title starts with ci:, so PR Lens left this pull request undrawn. Comment @pr-lens draw to draw it

github.comment.notice: false in .github/pr-lens.yml turns this note off

@vercel

vercel Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

2 Skipped Deployments
Project Deployment Actions Updated
agent-zero-docs Skipped Skipped Sep 24, 2026 10:26am UTC
agent-zero-marketing Skipped Skipped Sep 24, 2026 10:26am UTC

Comment thread Dockerfile
Comment thread README.md Outdated
Comment thread .github/workflows/cd.yml
…olation limits

Release tags must now be exactly v<apps/dashboard version> before the
cd workflow builds the release channel. The README's docker run example
mounts code-zero.deployment.yml, and the container section states that
the image ships no container engine, so runner.isolation: container is
unsupported there and fails closed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016Xv8HFiGBXf14HBy5yko6J

RedStar071 commented Sep 23, 2026 •

Copy link
Copy Markdown
Member Author

CI is red for a reason outside this PR. Every job that installs dependencies (lint, typecheck, tests, build, knip, i18n, autofix) fails at aube ci with this error:

× failed to fetch https://pkg.pr.new/lunariajs/lunaria/@lunariajs/core@904b935: 404 Not Found

packages/i18n/package.json pins @lunariajs/core to that pkg.pr.new preview build, and the artifact has expired. The URL also returns 404 outside CI. main last passed on 2026-09-14, when the artifact still existed, so a fresh main run would now fail the same way. This PR doesn't touch that dependency.

No fix PR exists yet. A proposed patch, kept out of this PR because it rewrites the lockfile:

-    "@lunariajs/core": "https://pkg.pr.new/lunariajs/lunaria/@lunariajs/core@904b935",
+    "@lunariajs/core": "^0.2.0",

Then run aube install to regenerate pnpm-lock.yaml. Version 0.2.0 on npm exports the same createLunaria, getFullStatus and ./config API that lunaria.config.ts and scripts/i18n-status.ts use, and it also ships a CLI. With the patch, the install succeeds. I haven't yet verified typecheck or i18n:status against it.


Generated by Claude Code

greptile-apps[bot]
greptile-apps Bot previously approved these changes Sep 23, 2026
…js/core 0.2.0

packages/i18n pinned @lunariajs/core to a pkg.pr.new preview build that
now returns 404, so every clean `aube ci` fails before any task runs.
Depend on the published 0.2.0 release instead. Its API is the one
i18n-status.ts already uses; missing keys are now reported as key paths
(string arrays), so the status report joins them with dots.

The lockfile was regenerated with `aube add`, which also rewrote the
@prisma/client and drizzle-orm peer references of the two
@better-auth/*-adapter@1.6.26 snapshots to a variant with no snapshot
of its own. A frozen `aube ci` then links the drizzle adapter to a
drizzle-orm directory that is never created and the dashboard build
fails, so those two references keep their main values; `aube install`
accepts the result unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016Xv8HFiGBXf14HBy5yko6J
Extract the formatting into scripts/utils/lunaria-status.ts and assert
that key path segments are dot-joined, so a wrong separator fails the
package tests instead of only surfacing in status.json.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016Xv8HFiGBXf14HBy5yko6J
…ile-github-cd-workflow-s49dsg

Port the @lunariajs/core fix from #70 so this branch installs and CI
can run; it becomes a no-op once main carries #70.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016Xv8HFiGBXf14HBy5yko6J

Copy link
Copy Markdown
Member Author

Vercel – agent-zero-docs is red on 2918d13 because of a Turbo cache config gap, not this PR.

The docs build was a remote-cache hit (1 cached, 1 total … FULL TURBO). Its inputs match the build #70 just ran, because this PR doesn't touch apps/docs or docs/*.md. Vercel then failed with No Output Directory named "dist" found after the Build completed. On Vercel the Nuxt vercel preset writes .vercel/output/, but @code-zero/docs#build in turbo.jsonc only declares .output/**. So a cache hit restores nothing that Vercel can deploy. The dashboard and marketing tasks already list both directories for exactly this reason. Any branch whose docs inputs match an earlier Vercel build hits the same failure, main included.

No fix exists yet. Proposed patch, kept out of this PR because it's unrelated to the Docker/CD change:

     "@code-zero/docs#build": {
       …
-      "outputs": [".output/**"],
+      "outputs": [".output/**", ".vercel/output/**"],
     },

A re-run would hit the same cache entry, so I haven't triggered one. The GitHub Actions CI for this commit is unaffected.


Generated by Claude Code

@vercel
vercel Bot temporarily deployed to Preview – agent-zero-docs September 24, 2026 10:26 Inactive
@vercel
vercel Bot temporarily deployed to Preview – agent-zero-marketing September 24, 2026 10:26 Inactive
@RedStar071
RedStar071 merged commit 5782022 into main Sep 26, 2026
18 checks passed
@RedStar071
RedStar071 deleted the claude/dockerfile-github-cd-workflow-s49dsg branch September 26, 2026 14:02

This branch was previously deployed

2 inactive deployments
Preview – agent-zero-marketing — fb397bc4 Deployed Sep 24, 2026 by vercel[bot]
Preview – agent-zero-docs — fb397bc4 Deployed Sep 24, 2026 by vercel[bot]
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