@@ -93,25 +93,34 @@ jobs:
93
93
restore-keys : ${{ runner.os }}-buildx-
94
94
95
95
# -------------------------------------------------------------
96
- # 3️⃣ Build & tag image (timestamp + latest)
96
+ # Build & push image (timestamp + latest)
97
97
# -------------------------------------------------------------
98
+
99
+ - name : 🔑 Log in to GHCR
100
+ uses : docker/login-action@v3
101
+ with :
102
+ registry : ghcr.io
103
+ username : ${{ github.actor }}
104
+ password : ${{ secrets.GITHUB_TOKEN }}
105
+
98
106
- name : 🏗️ Build Docker image
99
107
env :
100
108
DOCKER_CONTENT_TRUST : " 1"
101
109
run : |
102
110
TAG=$(date +%s)
103
111
echo "TAG=$TAG" >> "$GITHUB_ENV"
104
112
docker buildx build \
113
+ --platform linux/amd64,linux/arm64 \
105
114
--file Containerfile.lite \
106
115
--tag $IMAGE_NAME:$TAG \
107
116
--tag $IMAGE_NAME:latest \
108
117
--cache-from type=local,src=${{ env.CACHE_DIR }} \
109
118
--cache-to type=local,dest=${{ env.CACHE_DIR }},mode=max \
110
- --load \
119
+ --push \
111
120
. # build context is mandatory
112
121
113
122
# -------------------------------------------------------------
114
- # 4️⃣ Image lint (Dockle CLI → SARIF)
123
+ # Image lint (Dockle CLI → SARIF)
115
124
# -------------------------------------------------------------
116
125
- name : 🔍 Image lint (Dockle)
117
126
id : dockle
@@ -133,7 +142,7 @@ jobs:
133
142
sarif_file : dockle-results.sarif
134
143
135
144
# -------------------------------------------------------------
136
- # 5️⃣ Generate SPDX SBOM with Syft
145
+ # Generate SPDX SBOM with Syft
137
146
# -------------------------------------------------------------
138
147
- name : 📄 Generate SBOM (Syft)
139
148
uses : anchore/sbom-action@v0
@@ -142,7 +151,7 @@ jobs:
142
151
output-file : sbom.spdx.json
143
152
144
153
# -------------------------------------------------------------
145
- # 6️⃣ Trivy CVE scan → SARIF
154
+ # Trivy CVE scan → SARIF
146
155
# -------------------------------------------------------------
147
156
- name : 🛡️ Trivy vulnerability scan
148
157
id : trivy
@@ -160,23 +169,9 @@ jobs:
160
169
with :
161
170
sarif_file : trivy-results.sarif
162
171
163
- # -------------------------------------------------------------
164
- # 7️⃣ Push both tags to GHCR
165
- # -------------------------------------------------------------
166
- - name : 🔑 Log in to GHCR
167
- uses : docker/login-action@v3
168
- with :
169
- registry : ghcr.io
170
- username : ${{ github.actor }}
171
- password : ${{ secrets.GITHUB_TOKEN }}
172
-
173
- - name : 🚀 Push image to GHCR
174
- run : |
175
- docker push $IMAGE_NAME:${{ env.TAG }}
176
- docker push $IMAGE_NAME:latest
177
172
178
173
# -------------------------------------------------------------
179
- # 8️⃣ Key-less Cosign sign + attest (latest **and** timestamp)
174
+ # Key-less Cosign sign + attest (latest **and** timestamp)
180
175
# -------------------------------------------------------------
181
176
- name : 📥 Install Cosign
182
177
uses : sigstore/cosign-installer@v3 # provides the matching CLI
@@ -197,7 +192,7 @@ jobs:
197
192
done
198
193
199
194
# -------------------------------------------------------------
200
- # 9️⃣ Single gate - fail job on any scanner error
195
+ # Single gate - fail job on any scanner error
201
196
# -------------------------------------------------------------
202
197
- name : ⛔ Enforce lint & vuln gates
203
198
if : |
0 commit comments