feat: matrix ci - #2008
Conversation
|
Caution Review failedThe pull request is closed. WalkthroughRefactors Docker image workflows to use a matrix for native amd64/arm64 single-arch builds, then creates multi-arch manifests for Docker Hub and GHCR on tag refs. Adjusts version/tag resolution, login steps, and Docker metadata. Updates Dockerfile to use TARGETOS/TARGETARCH ARGs with corresponding GOOS/GOARCH ENV for multi-arch builds. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Dev as Tag push
participant GHA as GitHub Actions
participant BLD as build_single_arch (matrix)
participant DH as Docker Hub
participant GHCR as GHCR
participant MFT as create_manifests
Dev->>GHA: refs/tags/*
GHA->>BLD: Start matrix (amd64, arm64)
rect rgba(200,230,255,0.3)
note over BLD: For each arch
BLD->>BLD: Resolve version/tag
BLD->>BLD: Setup Buildx
BLD->>DH: Push image:alpha-ARCH, VERSION-ARCH
BLD->>GHCR: Push image:alpha-ARCH, VERSION-ARCH
end
BLD-->>GHA: Per-arch images pushed
GHA->>MFT: needs: build_single_arch
rect rgba(220,255,220,0.3)
MFT->>DH: imagetools create alpha, versioned-alpha (multi-arch)
MFT->>GHCR: imagetools create alpha, versioned-alpha (multi-arch)
end
MFT-->>Dev: Multi-arch manifests available
note over MFT: Runs only on tag refs
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Poem
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (3)
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. Comment |
Summary by CodeRabbit