Conversation
|
Caution Review failedThe pull request is closed. 📝 WalkthroughWalkthroughThis PR updates the Docker build workflow and Dockerfile to support dynamic GCC and LLVM version detection, conditional builds based on existing image tags, and parameterized version arguments. A new version detection script fetches latest versions from upstream sources, and the workflow conditionally builds and pushes images only when new version combinations are detected. Changes
Sequence Diagram(s)sequenceDiagram
participant GHA as GitHub Actions
participant VD as detect-versions<br/>Script
participant FTP as GCC FTP
participant API as LLVM GitHub API
participant CT as check-tag<br/>Script
participant DH as Docker Hub
participant BP as build-push<br/>Action
GHA->>VD: Trigger version detection
VD->>FTP: Fetch latest GCC releases
FTP-->>VD: Return versions
VD->>API: Fetch latest LLVM tag
API-->>VD: Return version
VD-->>GHA: Output gcc-version, llvm-version
GHA->>CT: Check if image tag exists
CT->>DH: Query for tag<br/>${DOCKER_IMAGE}:${tag}
DH-->>CT: Tag exists? (yes/no)
CT-->>GHA: Output should-build flag
alt should-build == 'true'
GHA->>GHA: Login to Docker Hub
GHA->>BP: Build with version args
BP-->>BP: Execute Dockerfile<br/>(GCC_VERSION, LLVM_VERSION)
BP->>DH: Push image with tag<br/>and labels
DH-->>BP: Confirm push
else should-build == 'false'
GHA->>GHA: Skip build/push
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
✨ Finishing touches
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
✏️ Tip: You can customize this high-level summary in your review settings.