Skip to content

feat: matrix ci - #2009

Merged
seefs001 merged 1 commit into
QuantumNous:alphafrom
seefs001:fix/ci
Oct 11, 2025
Merged

feat: matrix ci#2009
seefs001 merged 1 commit into
QuantumNous:alphafrom
seefs001:fix/ci

Conversation

@seefs001

@seefs001 seefs001 commented Oct 11, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Publish unified multi-arch Docker images (linux/amd64 and linux/arm64).
    • Consistent GHCR image paths via normalized repository naming.
    • More predictable image tags and labels derived from version metadata.
  • Chores

    • Streamlined Docker build and publish pipeline into a single flow.
    • Consolidated steps for checkout, versioning, emulation, builder setup, login, and metadata.
    • Removed per-architecture tagging and manual manifest management in favor of metadata-driven automation.

@seefs001
seefs001 changed the base branch from main to alpha October 11, 2025 05:11
@seefs001
seefs001 merged commit e603186 into QuantumNous:alpha Oct 11, 2025
@coderabbitai

coderabbitai Bot commented Oct 11, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Adds GHCR repository normalization in docker-image-alpha workflow and switches all GHCR references to the derived env variable. Overhauls docker-image-arm64 workflow into a single job that builds and pushes multi-arch images using metadata-driven tags/labels, consolidating setup, login, and build steps, and removing per-arch builds and explicit manifest creation.

Changes

Cohort / File(s) Change summary
GHCR repo normalization in alpha workflow
.github/workflows/docker-image-alpha.yml
Adds a step to compute and export GHCR_REPOSITORY from GITHUB_REPOSITORY. Replaces all GHCR references from github.repository/GITHUB_REPOSITORY to env.GHCR_REPOSITORY/GHCR_REPOSITORY across metadata, tagging, pushing, and manifest creation. Ensures normalization occurs in both build and create_manifests jobs.
Consolidated multi-arch build workflow
.github/workflows/docker-image-arm64.yml
Replaces matrix/per-arch jobs with a single ubuntu-latest job. Consolidates steps: checkout, version retrieval, QEMU, Buildx, GHCR login, metadata extraction. Uses docker/build-push-action@v5 to build and push linux/amd64 and linux/arm64 with metadata-provided tags/labels. Removes per-arch tag generation and manifest creation.

Sequence Diagram(s)

sequenceDiagram
    autonumber
    actor Dev as GitHub Actions Runner
    participant WF as docker-image-alpha.yml
    participant Norm as Normalize GHCR_REPOSITORY
    participant Build as Docker Buildx
    participant GHCR as ghcr.io

    Dev->>WF: Trigger workflow
    rect rgba(200,230,255,0.3)
    note right of Norm: New
    WF->>Norm: Derive GHCR_REPOSITORY from GITHUB_REPOSITORY
    Norm-->>WF: Export env.GHCR_REPOSITORY
    end
    WF->>Build: Build image using env.GHCR_REPOSITORY in tags
    Build->>GHCR: Push single-arch images
    rect rgba(220,255,220,0.3)
    note over WF,GHCR: Manifests use GHCR_REPOSITORY (updated)
    WF->>GHCR: Create/push manifests (alpha and versioned alpha)
    end
Loading
sequenceDiagram
    autonumber
    actor Dev as GitHub Actions Runner
    participant WF as docker-image-arm64.yml (single job)
    participant QEMU as Setup QEMU
    participant BX as Setup Buildx
    participant Meta as Docker Metadata
    participant GHCR as ghcr.io
    participant Build as build-push-action@v5

    Dev->>WF: Trigger workflow
    WF->>WF: Checkout repo
    WF->>WF: git describe --tags > VERSION
    WF->>QEMU: Initialize emulation
    WF->>BX: Initialize builder
    WF->>GHCR: Login
    WF->>Meta: Extract tags/labels
    rect rgba(255,245,200,0.4)
    note right of Build: Consolidated multi-arch build
    WF->>Build: Build and push (linux/amd64, linux/arm64) with Meta tags/labels
    Build->>GHCR: Push images with derived metadata
    end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Poem

Thump-thump go my feet on CI’s floor,
I munch on tags, then normalize some more.
One hop, two arch—now melded as one,
Metadata sprinkles, the build is done.
To GHCR burrow the images fly—
Carrots for logs, and a green check sky. 🥕🚀

✨ 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 4e0c911 and a8a0da5.

📒 Files selected for processing (2)
  • .github/workflows/docker-image-alpha.yml (5 hunks)
  • .github/workflows/docker-image-arm64.yml (2 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