@@ -14,22 +14,28 @@ jobs:
1414 outputs :
1515 release : ${{ steps.extract.outputs.release }}
1616 app : ${{ steps.extract.outputs.app }}
17+ registry_user : ${{ steps.extract.outputs.registry_user }}
1718 should_build : ${{ steps.check.outputs.should_build }}
1819 steps :
1920 - name : Checkout code
2021 uses : actions/checkout@v4
2122 with :
2223 fetch-depth : 2
2324
24- - name : Extract RELEASE and APP from docker-bake.hcl
25+ - name : Extract variables from docker-bake.hcl
2526 id : extract
2627 run : |
2728 RELEASE=$(grep 'variable "RELEASE"' -A 2 docker-bake.hcl | grep 'default' | sed 's/.*"\(.*\)"/\1/')
2829 APP=$(grep 'variable "APP"' -A 2 docker-bake.hcl | grep 'default' | sed 's/.*"\(.*\)"/\1/')
30+ REGISTRY_USER=$(grep 'variable "REGISTRY_USER"' -A 2 docker-bake.hcl | grep 'default' | sed 's/.*"\(.*\)"/\1/')
31+
2932 echo "release=${RELEASE}" >> $GITHUB_OUTPUT
3033 echo "app=${APP}" >> $GITHUB_OUTPUT
34+ echo "registry_user=${REGISTRY_USER}" >> $GITHUB_OUTPUT
35+
3136 echo "Current RELEASE: ${RELEASE}"
3237 echo "Current APP: ${APP}"
38+ echo "Current REGISTRY_USER: ${REGISTRY_USER}"
3339
3440 - name : Check if RELEASE changed
3541 id : check
@@ -90,35 +96,45 @@ jobs:
9096 username : ${{ github.actor }}
9197 password : ${{ secrets.GITHUB_TOKEN }}
9298
99+ - name : Create temporary docker-bake override file
100+ run : |
101+ # Create an override file that forces ghcr.io
102+ cat > docker-bake.override.hcl << 'EOF'
103+ target "default" {
104+ inherits = ["default"]
105+ tags = ["ghcr.io/${{ github.repository_owner }}/${{ needs.detect-changes.outputs.app }}:${{ needs.detect-changes.outputs.release }}"]
106+ }
107+ EOF
108+
109+ echo "Override file created:"
110+ cat docker-bake.override.hcl
111+
93112 - name : Build and push Docker image
94- env :
95- REGISTRY : ghcr.io
96- REGISTRY_USER : ${{ github.repository_owner }}
97113 run : |
98114 echo "Building and pushing Docker image to ghcr.io..."
99115
100- APP="${{ needs.detect-changes.outputs.app }}"
101- RELEASE="${{ needs.detect-changes.outputs.release }}"
102-
103116 # Show what will be built
104- echo "Registry: $REGISTRY"
105- echo "User: $REGISTRY_USER"
106- echo "App: $APP"
107- echo "Release: $RELEASE"
108- echo "Image will be: $REGISTRY/$REGISTRY_USER/$APP:$RELEASE"
109- docker buildx bake --push default
110- echo "Image built and pushed successfully!"
117+ echo "Configuration:"
118+ docker buildx bake -f docker-bake.hcl -f docker-bake.override.hcl --print default
119+
120+ echo ""
121+ echo "Starting build..."
122+
123+ # Build with both files - override will take precedence for tags
124+ docker buildx bake -f docker-bake.hcl -f docker-bake.override.hcl --push default
125+
126+ echo "Build completed!"
111127
112128 - name : Verify image was pushed
113129 run : |
114130 IMAGE="ghcr.io/${{ github.repository_owner }}/${{ needs.detect-changes.outputs.app }}:${{ needs.detect-changes.outputs.release }}"
115- echo "Verifying image was pushed : $IMAGE"
131+ echo "Verifying image: $IMAGE"
116132
117- # Wait a moment for registry to update
118- sleep 5
133+ # Wait for registry to update
134+ sleep 10
119135
120- # Check with Docker CLI (should work since we're logged in)
121- docker pull $IMAGE --quiet && echo "✓ Image verified: $IMAGE" || echo "✗ Could not pull image: $IMAGE"
136+ # Try to pull the image
137+ docker pull $IMAGE && echo "✅ SUCCESS: Image verified: $IMAGE" || echo "❌ FAILED: Could not pull image: $IMAGE"
122138
123139 - name : List built image
124140 id : list-images
0 commit comments