@@ -23,11 +23,19 @@ jobs:
23
23
- name : Checkout code
24
24
uses : actions/checkout@v4
25
25
26
+ - name : Set up QEMU
27
+ uses : docker/setup-qemu-action@v3
28
+
26
29
- name : Set up Docker Buildx
27
30
uses : docker/setup-buildx-action@v3
28
31
32
+ - name : Prepare
33
+ run : |
34
+ platform=${{ matrix.platform }}
35
+ echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
36
+
29
37
- name : Generate Docker metadata
30
- id : metadata
38
+ id : meta
31
39
uses : docker/metadata-action@v5
32
40
with :
33
41
images : ${{ env.REGISTRY_IMAGE }}
@@ -44,25 +52,26 @@ jobs:
44
52
with :
45
53
context : .
46
54
platforms : ${{ matrix.platform }}
47
- labels : ${{ steps.metadata.outputs.labels }}
48
- outputs : type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true
55
+ tags : ${{ env.REGISTRY_IMAGE }}
56
+ labels : ${{ steps.meta.outputs.labels }}
57
+ outputs : type=image,push-by-digest=true,name-canonical=true,push=true
49
58
build-args : |
50
59
TARGETPLATFORM=${{ matrix.platform }}
51
60
CCARCH=${{ matrix.ccarch }}
52
61
53
62
- name : Export digest
54
63
run : |
55
- mkdir -p /tmp /digests
64
+ mkdir -p ${{ runner.temp }} /digests
56
65
digest="${{ steps.build.outputs.digest }}"
57
- touch "/tmp /digests/${digest#sha256:}"
66
+ touch "${{ runner.temp }} /digests/${digest#sha256:}"
58
67
59
68
- name : Upload digest
60
69
uses : actions/upload-artifact@v4
61
70
with :
62
- name : digests
63
- path : /tmp /digests/*
64
- if-no-files-found : error
65
- retention-days : 1
71
+ name : digests-${{ env.PLATFORM_PAIR }}
72
+ path : ${{ runner.temp }} /digests/*
73
+ if-no-files-found : error
74
+ retention-days : 1
66
75
67
76
merge :
68
77
needs : build
@@ -71,14 +80,15 @@ jobs:
71
80
- name : Download digests
72
81
uses : actions/download-artifact@v4
73
82
with :
74
- name : digests
75
- path : /tmp/digests
83
+ path : ${{ runner.temp }}/digests
84
+ pattern : digests-*
85
+ merge-multiple : true
76
86
77
87
- name : Set up Docker Buildx
78
88
uses : docker/setup-buildx-action@v3
79
89
80
90
- name : Generate Docker metadata
81
- id : metadata
91
+ id : meta
82
92
uses : docker/metadata-action@v5
83
93
with :
84
94
images : ${{ env.REGISTRY_IMAGE }}
@@ -92,10 +102,11 @@ jobs:
92
102
password : ${{ secrets.DOCKERHUB_TOKEN }}
93
103
94
104
- name : Create manifest list and push
95
- working-directory : /tmp /digests
105
+ working-directory : ${{ runner.temp }} /digests
96
106
run : |
97
107
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
98
108
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
109
+
99
110
- name : Inspect image
100
111
run : |
101
- docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.metadata .outputs.version }}
112
+ docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta .outputs.version }}
0 commit comments