Skip to content

fix: ci GHCR_REPOSITORY env - #2015

Closed
seefs001 wants to merge 7 commits into
QuantumNous:mainfrom
seefs001:fix/ci
Closed

fix: ci GHCR_REPOSITORY env#2015
seefs001 wants to merge 7 commits into
QuantumNous:mainfrom
seefs001:fix/ci

Conversation

@seefs001

@seefs001 seefs001 commented Oct 11, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Publish official multi-architecture Docker images (amd64 and arm64).
    • Provide per-architecture tags and combined multi-arch manifests on Docker Hub and GHCR.
    • Introduce alpha image versioning (date + short commit) and publish both alpha and versioned tags.
  • Chores

    • Overhauled CI to a two-phase build (per-arch) and manifest creation for faster, more reliable releases.
    • Enabled build caching, provenance, and SBOM generation.
    • Improved Dockerfile to natively support multi-arch builds (OS/ARCH aware).

@seefs001 seefs001 closed this Oct 11, 2025
@coderabbitai

coderabbitai Bot commented Oct 11, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Refactors Docker image workflows to per-architecture matrix builds that push single-arch images, then creates and pushes multi-arch manifests to Docker Hub and GHCR. Adds version/tag derivation and repository normalization. Updates Dockerfile to accept TARGETOS/TARGETARCH and set GOOS/GOARCH dynamically.

Changes

Cohort / File(s) Summary of Changes
Workflow: Matrix per-arch builds + manifest creation
.github/workflows/docker-image-alpha.yml, .github/workflows/docker-image-arm64.yml
Replace single push job with matrix build_single_arch (amd64/arm64) and a dependent create_manifests. Add shallow checkout, version/tag derivation, GHCR repo normalization, Buildx setup, switch to docker/build-push-action@v6 with per-arch tags, caching, provenance/SBOM, and imagetools-based multi-arch manifest creation for Docker Hub and GHCR.
Dockerfile: Parametric OS/ARCH
Dockerfile
Introduce ARG TARGETOS, ARG TARGETARCH; set ENV GOOS/GOARCH from args with defaults; retain GO111MODULE=on, CGO_ENABLED=0. Enables cross-arch builds driven by build args.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Dev as GitHub Actions (trigger)
  participant M as build_single_arch (matrix: amd64, arm64)
  participant R1 as Docker Hub
  participant R2 as GHCR
  participant C as create_manifests

  Dev->>M: Checkout (shallow), derive VERSION/TAG, normalize GHCR
  rect rgba(200,230,255,0.25)
    note over M: For each arch (runner+platform)
    M->>M: Setup Buildx, extract labels, cache config
    M->>R1: Push image tags (alpha/versioned per-arch)
    M->>R2: Push image tags (alpha/versioned per-arch)
  end

  M-->>C: Needs-completed (both arches)
  C->>R1: Login, create multi-arch manifests (alpha + version)
  C->>R2: Login, create multi-arch manifests (alpha + version)
  C-->>Dev: Manifests published
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • feat: matrix ci #2014 — Implements the same workflow refactor (matrix per-arch builds + manifest creation) and Dockerfile ARG-based OS/ARCH handling; appears to be the counterpart or continuation of this change.

Poem

A rabbit builds on clouds so high,
For amd and arm it bakes a pie. 🥧
Tags aligned, manifests spun,
Hub and GHCR—both are done.
GOOS, GOARCH hop in line,
Multi-arch dreams now ship just fine. 🐇🚀

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 55afd5c and 525e4de.

📒 Files selected for processing (3)
  • .github/workflows/docker-image-alpha.yml (1 hunks)
  • .github/workflows/docker-image-arm64.yml (2 hunks)
  • Dockerfile (1 hunks)

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 and usage tips.

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