Skip to content

Commit fd2dc9d

Browse files
committed
v2
* Switch from docker manifest to buildx imagetools * Don't push default tags if version is being overridden on workflow dispatch * Improve summary output formatting
1 parent b95298b commit fd2dc9d

File tree

1 file changed

+51
-53
lines changed

1 file changed

+51
-53
lines changed

.github/workflows/docker-mod-builder.yml

Lines changed: 51 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ on:
1818
MOD_VERSION:
1919
required: false
2020
type: string
21+
MOD_VERSION_OVERRIDE:
22+
required: false
23+
type: string
2124
MULTI_ARCH:
2225
required: false
2326
type: string
@@ -47,18 +50,21 @@ jobs:
4750

4851
- name: Set Vars
4952
run: |
53+
echo "GITHUB_REPO=${{ inputs.GITHUB_REPO }}" >> $GITHUB_ENV
54+
echo "ENDPOINT=${{ inputs.ENDPOINT }}" >> $GITHUB_ENV
5055
echo "BASEIMAGE=${{ inputs.BASEIMAGE }}" >> $GITHUB_ENV
51-
echo "BASEIMAGE=${{ inputs.BASEIMAGE }}" >> $GITHUB_STEP_SUMMARY
5256
echo "MODNAME=${{ inputs.MODNAME }}" >> $GITHUB_ENV
53-
echo "MODNAME=${{ inputs.MODNAME }}" >> $GITHUB_STEP_SUMMARY
54-
echo "ENDPOINT=${{ inputs.ENDPOINT }}" >> $GITHUB_ENV
55-
echo "ENDPOINT=${{ inputs.ENDPOINT }}" >> $GITHUB_STEP_SUMMARY
56-
echo "GITHUB_REPO=${{ inputs.GITHUB_REPO }}" >> $GITHUB_ENV
57-
echo "GITHUB_REPO=${{ inputs.GITHUB_REPO }}" >> $GITHUB_STEP_SUMMARY
5857
echo "MOD_VERSION=${{ inputs.MOD_VERSION }}" >> $GITHUB_ENV
59-
echo "MOD_VERSION=${{ inputs.MOD_VERSION }}" >> $GITHUB_STEP_SUMMARY
58+
echo "MOD_VERSION_OVERRIDE=${{ inputs.MOD_VERSION_OVERRIDE }}" >> $GITHUB_ENV
6059
echo "MULTI_ARCH=${{ inputs.MULTI_ARCH }}" >> $GITHUB_ENV
61-
echo "MULTI_ARCH=${{ inputs.MULTI_ARCH }}" >> $GITHUB_STEP_SUMMARY
60+
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
61+
echo "> GITHUB_REPO=${{ inputs.GITHUB_REPO }}" >> $GITHUB_STEP_SUMMARY
62+
echo "> ENDPOINT=${{ inputs.ENDPOINT }}" >> $GITHUB_STEP_SUMMARY
63+
echo "> BASEIMAGE=${{ inputs.BASEIMAGE }}" >> $GITHUB_STEP_SUMMARY
64+
echo "> MODNAME=${{ inputs.MODNAME }}" >> $GITHUB_STEP_SUMMARY
65+
echo "> MOD_VERSION=${{ inputs.MOD_VERSION }}" >> $GITHUB_STEP_SUMMARY
66+
echo "> MOD_VERSION_OVERRIDE=${{ inputs.MOD_VERSION_OVERRIDE }}" >> $GITHUB_STEP_SUMMARY
67+
echo "> MULTI_ARCH=${{ inputs.MULTI_ARCH }}" >> $GITHUB_STEP_SUMMARY
6268
6369
- name: Set up QEMU
6470
uses: docker/setup-qemu-action@v3
@@ -75,7 +81,11 @@ jobs:
7581
run: |
7682
DOCKERHUB_TAGS="${ENDPOINT}:${BASEIMAGE}-${MODNAME} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }}"
7783
if [[ -n "${MOD_VERSION}" ]]; then
78-
DOCKERHUB_TAGS="${DOCKERHUB_TAGS} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${MOD_VERSION} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${MOD_VERSION}-${{ github.sha }}"
84+
if [[ "${MOD_VERSION_OVERRIDE,,}" == "true" ]]; then
85+
DOCKERHUB_TAGS="${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${MOD_VERSION} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${MOD_VERSION}-${{ github.sha }}"
86+
else
87+
DOCKERHUB_TAGS="${DOCKERHUB_TAGS} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${MOD_VERSION} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${MOD_VERSION}-${{ github.sha }}"
88+
fi
7989
fi
8090
echo "DOCKERHUB_TAGS=${DOCKERHUB_TAGS}" >> $GITHUB_ENV
8191
if [[ "${MULTI_ARCH,,}" == "true" ]]; then
@@ -129,29 +139,26 @@ jobs:
129139
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.GITHUB_REPO == github.repository && env.CR_USER && env.CR_PAT }}
130140
run: |
131141
if [[ "${MULTI_ARCH,,}" == "true" ]]; then
132-
echo "Pushed the following images/tags to GHCR:" >> $GITHUB_STEP_SUMMARY
142+
printf "\n## Pushed the following images/tags to GHCR:\n\n" >> $GITHUB_STEP_SUMMARY
133143
for i in ${DOCKERHUB_TAGS}; do
134144
ighcr="${i/#/ghcr.io\/}"
135145
docker push ${ighcr/:/:amd64-}
136-
echo "${ighcr/:/:amd64-}" >> $GITHUB_STEP_SUMMARY
146+
echo "\`${ighcr/:/:amd64-}\`" >> $GITHUB_STEP_SUMMARY
137147
docker push ${ighcr/:/:arm64v8-}
138-
echo "${ighcr/:/:arm64v8-}" >> $GITHUB_STEP_SUMMARY
148+
echo "\`${ighcr/:/:arm64v8-}\`" >> $GITHUB_STEP_SUMMARY
139149
done
140-
echo "Pushed the following manifests to GHCR:" >> $GITHUB_STEP_SUMMARY
150+
printf "\n## Pushed the following manifests to GHCR:\n\n" >> $GITHUB_STEP_SUMMARY
141151
for i in ${DOCKERHUB_TAGS}; do
142152
ighcr="${i/#/ghcr.io\/}"
143-
docker manifest push --purge ${ighcr} || :
144-
docker manifest create ${ighcr} ${ighcr/:/:amd64-} ${ighcr/:/:arm64v8-}
145-
docker manifest annotate ${ighcr} ${ighcr/:/:arm64v8-} --os linux --arch arm64 --variant v8
146-
docker manifest push --purge ${ighcr}
147-
echo "${ighcr}" >> $GITHUB_STEP_SUMMARY
153+
docker buildx imagetools create -t ${ighcr} ${ighcr/:/:amd64-} ${ighcr/:/:arm64v8-}
154+
echo "\`${ighcr}\`" >> $GITHUB_STEP_SUMMARY
148155
done
149156
else
150-
echo "Pushed the following images/tags to GHCR:" >> $GITHUB_STEP_SUMMARY
157+
printf "\n## Pushed the following images/tags to GHCR:\n\n" >> $GITHUB_STEP_SUMMARY
151158
for i in ${DOCKERHUB_TAGS}; do
152159
ighcr="${i/#/ghcr.io\/}"
153160
docker push ${ighcr}
154-
echo "${ighcr}" >> $GITHUB_STEP_SUMMARY
161+
echo "\`${ighcr}\`" >> $GITHUB_STEP_SUMMARY
155162
done
156163
fi
157164
@@ -161,19 +168,16 @@ jobs:
161168
if [[ "${MULTI_ARCH,,}" == "true" ]]; then
162169
docker push ghcr.io/${ENDPOINT}:amd64-pull_request_${{ github.event.pull_request.number }}
163170
docker push ghcr.io/${ENDPOINT}:arm64v8-pull_request_${{ github.event.pull_request.number }}
164-
echo "Pushed the following PR images/tags to GHCR:" >> $GITHUB_STEP_SUMMARY
165-
echo "ghcr.io/${ENDPOINT}:amd64-pull_request_${{ github.event.pull_request.number }}" >> $GITHUB_STEP_SUMMARY
166-
echo "ghcr.io/${ENDPOINT}:arm64v8-pull_request_${{ github.event.pull_request.number }}" >> $GITHUB_STEP_SUMMARY
167-
docker manifest push --purge ghcr.io/${ENDPOINT}:pull_request_${{ github.event.pull_request.number }} || :
168-
docker manifest create ghcr.io/${ENDPOINT}:pull_request_${{ github.event.pull_request.number }} ghcr.io/${ENDPOINT}:amd64-pull_request_${{ github.event.pull_request.number }} ghcr.io/${ENDPOINT}:arm64v8-pull_request_${{ github.event.pull_request.number }}
169-
docker manifest annotate ghcr.io/${ENDPOINT}:pull_request_${{ github.event.pull_request.number }} ghcr.io/${ENDPOINT}:arm64v8-pull_request_${{ github.event.pull_request.number }} --os linux --arch arm64 --variant v8
170-
docker manifest push --purge ghcr.io/${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}
171-
echo "Pushed the following PR manifest to GHCR:" >> $GITHUB_STEP_SUMMARY
172-
echo "ghcr.io/${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}" >> $GITHUB_STEP_SUMMARY
171+
printf "\n## Pushed the following PR images/tags to GHCR:\n\n" >> $GITHUB_STEP_SUMMARY
172+
echo "\`ghcr.io/${ENDPOINT}:amd64-pull_request_${{ github.event.pull_request.number }}\`" >> $GITHUB_STEP_SUMMARY
173+
echo "\`ghcr.io/${ENDPOINT}:arm64v8-pull_request_${{ github.event.pull_request.number }}\`" >> $GITHUB_STEP_SUMMARY
174+
docker buildx imagetools create -t ghcr.io/${ENDPOINT}:pull_request_${{ github.event.pull_request.number }} ghcr.io/${ENDPOINT}:amd64-pull_request_${{ github.event.pull_request.number }} ghcr.io/${ENDPOINT}:arm64v8-pull_request_${{ github.event.pull_request.number }}
175+
printf "\n## Pushed the following PR manifest to GHCR:\n\n" >> $GITHUB_STEP_SUMMARY
176+
echo "\`ghcr.io/${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}\`" >> $GITHUB_STEP_SUMMARY
173177
else
174178
docker push ghcr.io/${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}
175-
echo "Pushed the following PR image/tag to GHCR:" >> $GITHUB_STEP_SUMMARY
176-
echo "ghcr.io/${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}" >> $GITHUB_STEP_SUMMARY
179+
printf "\n## Pushed the following PR image/tag to GHCR:\n\n" >> $GITHUB_STEP_SUMMARY
180+
echo "\`ghcr.io/${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}\`" >> $GITHUB_STEP_SUMMARY
177181
fi
178182
179183
- name: Add GHCR push comment to PR
@@ -194,26 +198,23 @@ jobs:
194198
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.GITHUB_REPO == github.repository && env.DOCKERUSER && env.DOCKERPASS }}
195199
run: |
196200
if [[ "${MULTI_ARCH,,}" == "true" ]]; then
197-
echo "Pushed the following images/tags to Docker Hub:" >> $GITHUB_STEP_SUMMARY
201+
printf "\n## Pushed the following images/tags to Docker Hub:\n\n" >> $GITHUB_STEP_SUMMARY
198202
for i in ${DOCKERHUB_TAGS}; do
199203
docker push ${i/:/:amd64-}
200-
echo "${i/:/:amd64-}" >> $GITHUB_STEP_SUMMARY
204+
echo "\`${i/:/:amd64-}\`" >> $GITHUB_STEP_SUMMARY
201205
docker push ${i/:/:arm64v8-}
202-
echo "${i/:/:arm64v8-}" >> $GITHUB_STEP_SUMMARY
206+
echo "\`${i/:/:arm64v8-}\`" >> $GITHUB_STEP_SUMMARY
203207
done
204-
echo "Pushed the following manifests to Docker Hub:" >> $GITHUB_STEP_SUMMARY
208+
printf "\n## Pushed the following manifests to Docker Hub:\n\n" >> $GITHUB_STEP_SUMMARY
205209
for i in ${DOCKERHUB_TAGS}; do
206-
docker manifest push --purge ${i} || :
207-
docker manifest create ${i} ${i/:/:amd64-} ${i/:/:arm64v8-}
208-
docker manifest annotate ${i} ${i/:/:arm64v8-} --os linux --arch arm64 --variant v8
209-
docker manifest push --purge ${i}
210-
echo "${i}" >> $GITHUB_STEP_SUMMARY
210+
docker buildx imagetools create -t ${i} ${i/:/:amd64-} ${i/:/:arm64v8-}
211+
echo "\`${i}\`" >> $GITHUB_STEP_SUMMARY
211212
done
212213
else
213-
echo "Pushed the following images/tags to Docker Hub:" >> $GITHUB_STEP_SUMMARY
214+
printf "\n## Pushed the following images/tags to Docker Hub:\n\n" >> $GITHUB_STEP_SUMMARY
214215
for i in ${DOCKERHUB_TAGS}; do
215216
docker push ${i}
216-
echo "${i}" >> $GITHUB_STEP_SUMMARY
217+
echo "\`${i}\`" >> $GITHUB_STEP_SUMMARY
217218
done
218219
fi
219220
@@ -223,17 +224,14 @@ jobs:
223224
if [[ "${MULTI_ARCH,,}" == "true" ]]; then
224225
docker push ${ENDPOINT}:amd64-pull_request_${{ github.event.pull_request.number }}
225226
docker push ${ENDPOINT}:arm64v8-pull_request_${{ github.event.pull_request.number }}
226-
echo "Pushed the following PR images/tags to Docker Hub:" >> $GITHUB_STEP_SUMMARY
227-
echo "${ENDPOINT}:amd64-pull_request_${{ github.event.pull_request.number }}" >> $GITHUB_STEP_SUMMARY
228-
echo "${ENDPOINT}:arm64v8-pull_request_${{ github.event.pull_request.number }}" >> $GITHUB_STEP_SUMMARY
229-
docker manifest push --purge ${ENDPOINT}:pull_request_${{ github.event.pull_request.number }} || :
230-
docker manifest create ${ENDPOINT}:pull_request_${{ github.event.pull_request.number }} ${ENDPOINT}:amd64-pull_request_${{ github.event.pull_request.number }} ${ENDPOINT}:arm64v8-pull_request_${{ github.event.pull_request.number }}
231-
docker manifest annotate ${ENDPOINT}:pull_request_${{ github.event.pull_request.number }} ${ENDPOINT}:arm64v8-pull_request_${{ github.event.pull_request.number }} --os linux --arch arm64 --variant v8
232-
docker manifest push --purge ${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}
233-
echo "Pushed the following PR manifest to Docker Hub:" >> $GITHUB_STEP_SUMMARY
234-
echo "${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}" >> $GITHUB_STEP_SUMMARY
227+
printf "\n## Pushed the following PR images/tags to Docker Hub:\n\n" >> $GITHUB_STEP_SUMMARY
228+
echo "\`${ENDPOINT}:amd64-pull_request_${{ github.event.pull_request.number }}\`" >> $GITHUB_STEP_SUMMARY
229+
echo "\`${ENDPOINT}:arm64v8-pull_request_${{ github.event.pull_request.number }}\`" >> $GITHUB_STEP_SUMMARY
230+
docker buildx imagetools create -t ${ENDPOINT}:pull_request_${{ github.event.pull_request.number }} ${ENDPOINT}:amd64-pull_request_${{ github.event.pull_request.number }} ${ENDPOINT}:arm64v8-pull_request_${{ github.event.pull_request.number }}
231+
printf "\n## Pushed the following PR manifest to Docker Hub:\n\n" >> $GITHUB_STEP_SUMMARY
232+
echo "\`${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}\`" >> $GITHUB_STEP_SUMMARY
235233
else
236234
docker push ${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}
237-
echo "Pushed the following PR image/tag to Docker Hub:" >> $GITHUB_STEP_SUMMARY
238-
echo "${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}" >> $GITHUB_STEP_SUMMARY
235+
printf "\n## Pushed the following PR image/tag to Docker Hub:\n\n" >> $GITHUB_STEP_SUMMARY
236+
echo "\`${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}\`" >> $GITHUB_STEP_SUMMARY
239237
fi

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy