|
22 | 22 | type: boolean |
23 | 23 |
|
24 | 24 | env: |
25 | | - DOCKER_HUB_REPO: ${{ secrets.DOCKERHUB_USERNAME }}/ocaml-5.4 |
26 | | - GHCR_REPO: ghcr.io/${{ github.repository_owner }}/ocaml-5.4 |
| 25 | + DOCKER_HUB_BASE: ${{ secrets.DOCKERHUB_USERNAME }}/ocaml-devcontainer-base |
| 26 | + DOCKER_HUB_DEV: ${{ secrets.DOCKERHUB_USERNAME }}/ocaml-devcontainer |
| 27 | + GHCR_BASE: ghcr.io/${{ github.repository_owner }}/ocaml-devcontainer-base |
| 28 | + GHCR_DEV: ghcr.io/${{ github.repository_owner }}/ocaml-devcontainer |
27 | 29 |
|
28 | 30 | jobs: |
29 | 31 | # ============================================================================ |
|
96 | 98 | platforms: linux/amd64 |
97 | 99 | push: ${{ github.event_name != 'pull_request' }} |
98 | 100 | tags: | |
99 | | - ${{ env.GHCR_REPO }}-base:latest-amd64 |
100 | | - ${{ env.DOCKER_HUB_REPO }}-base:latest-amd64 |
| 101 | + ${{ env.GHCR_BASE }}:latest-amd64 |
| 102 | + ${{ env.DOCKER_HUB_BASE }}:latest-amd64 |
101 | 103 | labels: | |
102 | 104 | org.opencontainers.image.source=https://github.com/${{ github.repository }} |
103 | 105 | org.opencontainers.image.revision=${{ github.sha }} |
@@ -148,8 +150,8 @@ jobs: |
148 | 150 | platforms: linux/arm64 |
149 | 151 | push: ${{ github.event_name != 'pull_request' }} |
150 | 152 | tags: | |
151 | | - ${{ env.GHCR_REPO }}-base:latest-arm64 |
152 | | - ${{ env.DOCKER_HUB_REPO }}-base:latest-arm64 |
| 153 | + ${{ env.GHCR_BASE }}:latest-arm64 |
| 154 | + ${{ env.DOCKER_HUB_BASE }}:latest-arm64 |
153 | 155 | labels: | |
154 | 156 | org.opencontainers.image.source=https://github.com/${{ github.repository }} |
155 | 157 | org.opencontainers.image.revision=${{ github.sha }} |
@@ -204,13 +206,13 @@ jobs: |
204 | 206 | platforms: linux/amd64 |
205 | 207 | push: ${{ github.event_name != 'pull_request' }} |
206 | 208 | tags: | |
207 | | - ${{ env.GHCR_REPO }}-dev:latest-amd64 |
208 | | - ${{ env.DOCKER_HUB_REPO }}-dev:latest-amd64 |
| 209 | + ${{ env.GHCR_DEV }}:latest-amd64 |
| 210 | + ${{ env.DOCKER_HUB_DEV }}:latest-amd64 |
209 | 211 | labels: | |
210 | 212 | org.opencontainers.image.source=https://github.com/${{ github.repository }} |
211 | 213 | org.opencontainers.image.revision=${{ github.sha }} |
212 | 214 | build-args: | |
213 | | - BASE_IMAGE=${{ env.GHCR_REPO }}-base:latest-amd64 |
| 215 | + BASE_IMAGE=${{ env.GHCR_BASE }}:latest-amd64 |
214 | 216 | cache-from: type=gha,scope=dev-amd64 |
215 | 217 | cache-to: type=gha,mode=max,scope=dev-amd64 |
216 | 218 |
|
@@ -259,13 +261,13 @@ jobs: |
259 | 261 | platforms: linux/arm64 |
260 | 262 | push: ${{ github.event_name != 'pull_request' }} |
261 | 263 | tags: | |
262 | | - ${{ env.GHCR_REPO }}-dev:latest-arm64 |
263 | | - ${{ env.DOCKER_HUB_REPO }}-dev:latest-arm64 |
| 264 | + ${{ env.GHCR_DEV }}:latest-arm64 |
| 265 | + ${{ env.DOCKER_HUB_DEV }}:latest-arm64 |
264 | 266 | labels: | |
265 | 267 | org.opencontainers.image.source=https://github.com/${{ github.repository }} |
266 | 268 | org.opencontainers.image.revision=${{ github.sha }} |
267 | 269 | build-args: | |
268 | | - BASE_IMAGE=${{ env.GHCR_REPO }}-base:latest-arm64 |
| 270 | + BASE_IMAGE=${{ env.GHCR_BASE }}:latest-arm64 |
269 | 271 | cache-from: type=gha,scope=dev-arm64 |
270 | 272 | cache-to: type=gha,mode=max,scope=dev-arm64 |
271 | 273 |
|
@@ -303,39 +305,39 @@ jobs: |
303 | 305 |
|
304 | 306 | - name: Create and push multi-arch manifest (GHCR) |
305 | 307 | run: | |
306 | | - docker buildx imagetools create -t ${{ env.GHCR_REPO }}-base:latest \ |
307 | | - ${{ env.GHCR_REPO }}-base:latest-amd64 \ |
308 | | - ${{ env.GHCR_REPO }}-base:latest-arm64 |
| 308 | + docker buildx imagetools create -t ${{ env.GHCR_BASE }}:latest \ |
| 309 | + ${{ env.GHCR_BASE }}:latest-amd64 \ |
| 310 | + ${{ env.GHCR_BASE }}:latest-arm64 |
309 | 311 |
|
310 | 312 | # Add version tag if this is a release |
311 | 313 | if [[ "${{ github.ref }}" == refs/tags/v* ]]; then |
312 | 314 | VERSION=${GITHUB_REF#refs/tags/} |
313 | | - docker buildx imagetools create -t ${{ env.GHCR_REPO }}-base:${VERSION} \ |
314 | | - ${{ env.GHCR_REPO }}-base:latest-amd64 \ |
315 | | - ${{ env.GHCR_REPO }}-base:latest-arm64 |
| 315 | + docker buildx imagetools create -t ${{ env.GHCR_BASE }}:${VERSION} \ |
| 316 | + ${{ env.GHCR_BASE }}:latest-amd64 \ |
| 317 | + ${{ env.GHCR_BASE }}:latest-arm64 |
316 | 318 | fi |
317 | 319 |
|
318 | 320 | - name: Create and push multi-arch manifest (Docker Hub) |
319 | 321 | run: | |
320 | | - docker buildx imagetools create -t ${{ env.DOCKER_HUB_REPO }}-base:latest \ |
321 | | - ${{ env.DOCKER_HUB_REPO }}-base:latest-amd64 \ |
322 | | - ${{ env.DOCKER_HUB_REPO }}-base:latest-arm64 |
| 322 | + docker buildx imagetools create -t ${{ env.DOCKER_HUB_BASE }}:latest \ |
| 323 | + ${{ env.DOCKER_HUB_BASE }}:latest-amd64 \ |
| 324 | + ${{ env.DOCKER_HUB_BASE }}:latest-arm64 |
323 | 325 |
|
324 | 326 | # Add version tag if this is a release |
325 | 327 | if [[ "${{ github.ref }}" == refs/tags/v* ]]; then |
326 | 328 | VERSION=${GITHUB_REF#refs/tags/} |
327 | | - docker buildx imagetools create -t ${{ env.DOCKER_HUB_REPO }}-base:${VERSION} \ |
328 | | - ${{ env.DOCKER_HUB_REPO }}-base:latest-amd64 \ |
329 | | - ${{ env.DOCKER_HUB_REPO }}-base:latest-arm64 |
| 329 | + docker buildx imagetools create -t ${{ env.DOCKER_HUB_BASE }}:${VERSION} \ |
| 330 | + ${{ env.DOCKER_HUB_BASE }}:latest-amd64 \ |
| 331 | + ${{ env.DOCKER_HUB_BASE }}:latest-arm64 |
330 | 332 | fi |
331 | 333 |
|
332 | 334 | - name: Verify multi-arch manifest |
333 | 335 | run: | |
334 | 336 | echo "=== GHCR Base Image ===" |
335 | | - docker buildx imagetools inspect ${{ env.GHCR_REPO }}-base:latest |
| 337 | + docker buildx imagetools inspect ${{ env.GHCR_BASE }}:latest |
336 | 338 | echo "" |
337 | 339 | echo "=== Docker Hub Base Image ===" |
338 | | - docker buildx imagetools inspect ${{ env.DOCKER_HUB_REPO }}-base:latest |
| 340 | + docker buildx imagetools inspect ${{ env.DOCKER_HUB_BASE }}:latest |
339 | 341 |
|
340 | 342 | # ============================================================================ |
341 | 343 | # Fan-in: Merge Dev Image Tags into Multi-Arch Manifest |
@@ -371,36 +373,36 @@ jobs: |
371 | 373 |
|
372 | 374 | - name: Create and push multi-arch manifest (GHCR) |
373 | 375 | run: | |
374 | | - docker buildx imagetools create -t ${{ env.GHCR_REPO }}-dev:latest \ |
375 | | - ${{ env.GHCR_REPO }}-dev:latest-amd64 \ |
376 | | - ${{ env.GHCR_REPO }}-dev:latest-arm64 |
| 376 | + docker buildx imagetools create -t ${{ env.GHCR_DEV }}:latest \ |
| 377 | + ${{ env.GHCR_DEV }}:latest-amd64 \ |
| 378 | + ${{ env.GHCR_DEV }}:latest-arm64 |
377 | 379 |
|
378 | 380 | # Add version tag if this is a release |
379 | 381 | if [[ "${{ github.ref }}" == refs/tags/v* ]]; then |
380 | 382 | VERSION=${GITHUB_REF#refs/tags/} |
381 | | - docker buildx imagetools create -t ${{ env.GHCR_REPO }}-dev:${VERSION} \ |
382 | | - ${{ env.GHCR_REPO }}-dev:latest-amd64 \ |
383 | | - ${{ env.GHCR_REPO }}-dev:latest-arm64 |
| 383 | + docker buildx imagetools create -t ${{ env.GHCR_DEV }}:${VERSION} \ |
| 384 | + ${{ env.GHCR_DEV }}:latest-amd64 \ |
| 385 | + ${{ env.GHCR_DEV }}:latest-arm64 |
384 | 386 | fi |
385 | 387 |
|
386 | 388 | - name: Create and push multi-arch manifest (Docker Hub) |
387 | 389 | run: | |
388 | | - docker buildx imagetools create -t ${{ env.DOCKER_HUB_REPO }}-dev:latest \ |
389 | | - ${{ env.DOCKER_HUB_REPO }}-dev:latest-amd64 \ |
390 | | - ${{ env.DOCKER_HUB_REPO }}-dev:latest-arm64 |
| 390 | + docker buildx imagetools create -t ${{ env.DOCKER_HUB_DEV }}:latest \ |
| 391 | + ${{ env.DOCKER_HUB_DEV }}:latest-amd64 \ |
| 392 | + ${{ env.DOCKER_HUB_DEV }}:latest-arm64 |
391 | 393 |
|
392 | 394 | # Add version tag if this is a release |
393 | 395 | if [[ "${{ github.ref }}" == refs/tags/v* ]]; then |
394 | 396 | VERSION=${GITHUB_REF#refs/tags/} |
395 | | - docker buildx imagetools create -t ${{ env.DOCKER_HUB_REPO }}-dev:${VERSION} \ |
396 | | - ${{ env.DOCKER_HUB_REPO }}-dev:latest-amd64 \ |
397 | | - ${{ env.DOCKER_HUB_REPO }}-dev:latest-arm64 |
| 397 | + docker buildx imagetools create -t ${{ env.DOCKER_HUB_DEV }}:${VERSION} \ |
| 398 | + ${{ env.DOCKER_HUB_DEV }}:latest-amd64 \ |
| 399 | + ${{ env.DOCKER_HUB_DEV }}:latest-arm64 |
398 | 400 | fi |
399 | 401 |
|
400 | 402 | - name: Verify multi-arch manifest |
401 | 403 | run: | |
402 | 404 | echo "=== GHCR Dev Image ===" |
403 | | - docker buildx imagetools inspect ${{ env.GHCR_REPO }}-dev:latest |
| 405 | + docker buildx imagetools inspect ${{ env.GHCR_DEV }}:latest |
404 | 406 | echo "" |
405 | 407 | echo "=== Docker Hub Dev Image ===" |
406 | | - docker buildx imagetools inspect ${{ env.DOCKER_HUB_REPO }}-dev:latest |
| 408 | + docker buildx imagetools inspect ${{ env.DOCKER_HUB_DEV }}:latest |
0 commit comments