From fd2dc9de7fae69f5e8f7a6515ca3957907dc777f Mon Sep 17 00:00:00 2001 From: thespad Date: Wed, 11 Sep 2024 16:25:19 +0100 Subject: [PATCH 1/4] 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 --- .github/workflows/docker-mod-builder.yml | 104 +++++++++++------------ 1 file changed, 51 insertions(+), 53 deletions(-) diff --git a/.github/workflows/docker-mod-builder.yml b/.github/workflows/docker-mod-builder.yml index 9003677..0860714 100644 --- a/.github/workflows/docker-mod-builder.yml +++ b/.github/workflows/docker-mod-builder.yml @@ -18,6 +18,9 @@ on: MOD_VERSION: required: false type: string + MOD_VERSION_OVERRIDE: + required: false + type: string MULTI_ARCH: required: false type: string @@ -47,18 +50,21 @@ jobs: - name: Set Vars run: | + echo "GITHUB_REPO=${{ inputs.GITHUB_REPO }}" >> $GITHUB_ENV + echo "ENDPOINT=${{ inputs.ENDPOINT }}" >> $GITHUB_ENV echo "BASEIMAGE=${{ inputs.BASEIMAGE }}" >> $GITHUB_ENV - echo "BASEIMAGE=${{ inputs.BASEIMAGE }}" >> $GITHUB_STEP_SUMMARY echo "MODNAME=${{ inputs.MODNAME }}" >> $GITHUB_ENV - echo "MODNAME=${{ inputs.MODNAME }}" >> $GITHUB_STEP_SUMMARY - echo "ENDPOINT=${{ inputs.ENDPOINT }}" >> $GITHUB_ENV - echo "ENDPOINT=${{ inputs.ENDPOINT }}" >> $GITHUB_STEP_SUMMARY - echo "GITHUB_REPO=${{ inputs.GITHUB_REPO }}" >> $GITHUB_ENV - echo "GITHUB_REPO=${{ inputs.GITHUB_REPO }}" >> $GITHUB_STEP_SUMMARY echo "MOD_VERSION=${{ inputs.MOD_VERSION }}" >> $GITHUB_ENV - echo "MOD_VERSION=${{ inputs.MOD_VERSION }}" >> $GITHUB_STEP_SUMMARY + echo "MOD_VERSION_OVERRIDE=${{ inputs.MOD_VERSION_OVERRIDE }}" >> $GITHUB_ENV echo "MULTI_ARCH=${{ inputs.MULTI_ARCH }}" >> $GITHUB_ENV - echo "MULTI_ARCH=${{ inputs.MULTI_ARCH }}" >> $GITHUB_STEP_SUMMARY + echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY + echo "> GITHUB_REPO=${{ inputs.GITHUB_REPO }}" >> $GITHUB_STEP_SUMMARY + echo "> ENDPOINT=${{ inputs.ENDPOINT }}" >> $GITHUB_STEP_SUMMARY + echo "> BASEIMAGE=${{ inputs.BASEIMAGE }}" >> $GITHUB_STEP_SUMMARY + echo "> MODNAME=${{ inputs.MODNAME }}" >> $GITHUB_STEP_SUMMARY + echo "> MOD_VERSION=${{ inputs.MOD_VERSION }}" >> $GITHUB_STEP_SUMMARY + echo "> MOD_VERSION_OVERRIDE=${{ inputs.MOD_VERSION_OVERRIDE }}" >> $GITHUB_STEP_SUMMARY + echo "> MULTI_ARCH=${{ inputs.MULTI_ARCH }}" >> $GITHUB_STEP_SUMMARY - name: Set up QEMU uses: docker/setup-qemu-action@v3 @@ -75,7 +81,11 @@ jobs: run: | DOCKERHUB_TAGS="${ENDPOINT}:${BASEIMAGE}-${MODNAME} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }}" if [[ -n "${MOD_VERSION}" ]]; then - DOCKERHUB_TAGS="${DOCKERHUB_TAGS} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${MOD_VERSION} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${MOD_VERSION}-${{ github.sha }}" + if [[ "${MOD_VERSION_OVERRIDE,,}" == "true" ]]; then + DOCKERHUB_TAGS="${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${MOD_VERSION} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${MOD_VERSION}-${{ github.sha }}" + else + DOCKERHUB_TAGS="${DOCKERHUB_TAGS} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${MOD_VERSION} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${MOD_VERSION}-${{ github.sha }}" + fi fi echo "DOCKERHUB_TAGS=${DOCKERHUB_TAGS}" >> $GITHUB_ENV if [[ "${MULTI_ARCH,,}" == "true" ]]; then @@ -129,29 +139,26 @@ jobs: 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 }} run: | if [[ "${MULTI_ARCH,,}" == "true" ]]; then - echo "Pushed the following images/tags to GHCR:" >> $GITHUB_STEP_SUMMARY + printf "\n## Pushed the following images/tags to GHCR:\n\n" >> $GITHUB_STEP_SUMMARY for i in ${DOCKERHUB_TAGS}; do ighcr="${i/#/ghcr.io\/}" docker push ${ighcr/:/:amd64-} - echo "${ighcr/:/:amd64-}" >> $GITHUB_STEP_SUMMARY + echo "\`${ighcr/:/:amd64-}\`" >> $GITHUB_STEP_SUMMARY docker push ${ighcr/:/:arm64v8-} - echo "${ighcr/:/:arm64v8-}" >> $GITHUB_STEP_SUMMARY + echo "\`${ighcr/:/:arm64v8-}\`" >> $GITHUB_STEP_SUMMARY done - echo "Pushed the following manifests to GHCR:" >> $GITHUB_STEP_SUMMARY + printf "\n## Pushed the following manifests to GHCR:\n\n" >> $GITHUB_STEP_SUMMARY for i in ${DOCKERHUB_TAGS}; do ighcr="${i/#/ghcr.io\/}" - docker manifest push --purge ${ighcr} || : - docker manifest create ${ighcr} ${ighcr/:/:amd64-} ${ighcr/:/:arm64v8-} - docker manifest annotate ${ighcr} ${ighcr/:/:arm64v8-} --os linux --arch arm64 --variant v8 - docker manifest push --purge ${ighcr} - echo "${ighcr}" >> $GITHUB_STEP_SUMMARY + docker buildx imagetools create -t ${ighcr} ${ighcr/:/:amd64-} ${ighcr/:/:arm64v8-} + echo "\`${ighcr}\`" >> $GITHUB_STEP_SUMMARY done else - echo "Pushed the following images/tags to GHCR:" >> $GITHUB_STEP_SUMMARY + printf "\n## Pushed the following images/tags to GHCR:\n\n" >> $GITHUB_STEP_SUMMARY for i in ${DOCKERHUB_TAGS}; do ighcr="${i/#/ghcr.io\/}" docker push ${ighcr} - echo "${ighcr}" >> $GITHUB_STEP_SUMMARY + echo "\`${ighcr}\`" >> $GITHUB_STEP_SUMMARY done fi @@ -161,19 +168,16 @@ jobs: if [[ "${MULTI_ARCH,,}" == "true" ]]; then docker push ghcr.io/${ENDPOINT}:amd64-pull_request_${{ github.event.pull_request.number }} docker push ghcr.io/${ENDPOINT}:arm64v8-pull_request_${{ github.event.pull_request.number }} - echo "Pushed the following PR images/tags to GHCR:" >> $GITHUB_STEP_SUMMARY - echo "ghcr.io/${ENDPOINT}:amd64-pull_request_${{ github.event.pull_request.number }}" >> $GITHUB_STEP_SUMMARY - echo "ghcr.io/${ENDPOINT}:arm64v8-pull_request_${{ github.event.pull_request.number }}" >> $GITHUB_STEP_SUMMARY - docker manifest push --purge ghcr.io/${ENDPOINT}:pull_request_${{ github.event.pull_request.number }} || : - 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 }} - 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 - docker manifest push --purge ghcr.io/${ENDPOINT}:pull_request_${{ github.event.pull_request.number }} - echo "Pushed the following PR manifest to GHCR:" >> $GITHUB_STEP_SUMMARY - echo "ghcr.io/${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}" >> $GITHUB_STEP_SUMMARY + printf "\n## Pushed the following PR images/tags to GHCR:\n\n" >> $GITHUB_STEP_SUMMARY + echo "\`ghcr.io/${ENDPOINT}:amd64-pull_request_${{ github.event.pull_request.number }}\`" >> $GITHUB_STEP_SUMMARY + echo "\`ghcr.io/${ENDPOINT}:arm64v8-pull_request_${{ github.event.pull_request.number }}\`" >> $GITHUB_STEP_SUMMARY + 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 }} + printf "\n## Pushed the following PR manifest to GHCR:\n\n" >> $GITHUB_STEP_SUMMARY + echo "\`ghcr.io/${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}\`" >> $GITHUB_STEP_SUMMARY else docker push ghcr.io/${ENDPOINT}:pull_request_${{ github.event.pull_request.number }} - echo "Pushed the following PR image/tag to GHCR:" >> $GITHUB_STEP_SUMMARY - echo "ghcr.io/${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}" >> $GITHUB_STEP_SUMMARY + printf "\n## Pushed the following PR image/tag to GHCR:\n\n" >> $GITHUB_STEP_SUMMARY + echo "\`ghcr.io/${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}\`" >> $GITHUB_STEP_SUMMARY fi - name: Add GHCR push comment to PR @@ -194,26 +198,23 @@ jobs: 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 }} run: | if [[ "${MULTI_ARCH,,}" == "true" ]]; then - echo "Pushed the following images/tags to Docker Hub:" >> $GITHUB_STEP_SUMMARY + printf "\n## Pushed the following images/tags to Docker Hub:\n\n" >> $GITHUB_STEP_SUMMARY for i in ${DOCKERHUB_TAGS}; do docker push ${i/:/:amd64-} - echo "${i/:/:amd64-}" >> $GITHUB_STEP_SUMMARY + echo "\`${i/:/:amd64-}\`" >> $GITHUB_STEP_SUMMARY docker push ${i/:/:arm64v8-} - echo "${i/:/:arm64v8-}" >> $GITHUB_STEP_SUMMARY + echo "\`${i/:/:arm64v8-}\`" >> $GITHUB_STEP_SUMMARY done - echo "Pushed the following manifests to Docker Hub:" >> $GITHUB_STEP_SUMMARY + printf "\n## Pushed the following manifests to Docker Hub:\n\n" >> $GITHUB_STEP_SUMMARY for i in ${DOCKERHUB_TAGS}; do - docker manifest push --purge ${i} || : - docker manifest create ${i} ${i/:/:amd64-} ${i/:/:arm64v8-} - docker manifest annotate ${i} ${i/:/:arm64v8-} --os linux --arch arm64 --variant v8 - docker manifest push --purge ${i} - echo "${i}" >> $GITHUB_STEP_SUMMARY + docker buildx imagetools create -t ${i} ${i/:/:amd64-} ${i/:/:arm64v8-} + echo "\`${i}\`" >> $GITHUB_STEP_SUMMARY done else - echo "Pushed the following images/tags to Docker Hub:" >> $GITHUB_STEP_SUMMARY + printf "\n## Pushed the following images/tags to Docker Hub:\n\n" >> $GITHUB_STEP_SUMMARY for i in ${DOCKERHUB_TAGS}; do docker push ${i} - echo "${i}" >> $GITHUB_STEP_SUMMARY + echo "\`${i}\`" >> $GITHUB_STEP_SUMMARY done fi @@ -223,17 +224,14 @@ jobs: if [[ "${MULTI_ARCH,,}" == "true" ]]; then docker push ${ENDPOINT}:amd64-pull_request_${{ github.event.pull_request.number }} docker push ${ENDPOINT}:arm64v8-pull_request_${{ github.event.pull_request.number }} - echo "Pushed the following PR images/tags to Docker Hub:" >> $GITHUB_STEP_SUMMARY - echo "${ENDPOINT}:amd64-pull_request_${{ github.event.pull_request.number }}" >> $GITHUB_STEP_SUMMARY - echo "${ENDPOINT}:arm64v8-pull_request_${{ github.event.pull_request.number }}" >> $GITHUB_STEP_SUMMARY - docker manifest push --purge ${ENDPOINT}:pull_request_${{ github.event.pull_request.number }} || : - 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 }} - 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 - docker manifest push --purge ${ENDPOINT}:pull_request_${{ github.event.pull_request.number }} - echo "Pushed the following PR manifest to Docker Hub:" >> $GITHUB_STEP_SUMMARY - echo "${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}" >> $GITHUB_STEP_SUMMARY + printf "\n## Pushed the following PR images/tags to Docker Hub:\n\n" >> $GITHUB_STEP_SUMMARY + echo "\`${ENDPOINT}:amd64-pull_request_${{ github.event.pull_request.number }}\`" >> $GITHUB_STEP_SUMMARY + echo "\`${ENDPOINT}:arm64v8-pull_request_${{ github.event.pull_request.number }}\`" >> $GITHUB_STEP_SUMMARY + 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 }} + printf "\n## Pushed the following PR manifest to Docker Hub:\n\n" >> $GITHUB_STEP_SUMMARY + echo "\`${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}\`" >> $GITHUB_STEP_SUMMARY else docker push ${ENDPOINT}:pull_request_${{ github.event.pull_request.number }} - echo "Pushed the following PR image/tag to Docker Hub:" >> $GITHUB_STEP_SUMMARY - echo "${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}" >> $GITHUB_STEP_SUMMARY + printf "\n## Pushed the following PR image/tag to Docker Hub:\n\n" >> $GITHUB_STEP_SUMMARY + echo "\`${ENDPOINT}:pull_request_${{ github.event.pull_request.number }}\`" >> $GITHUB_STEP_SUMMARY fi From 58ab98b2b09896d675a9f0b1aaabf656ef546377 Mon Sep 17 00:00:00 2001 From: thespad Date: Wed, 11 Sep 2024 17:44:32 +0100 Subject: [PATCH 2/4] Default MOD_VERSION_OVERRIDE to false --- .github/workflows/docker-mod-builder.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker-mod-builder.yml b/.github/workflows/docker-mod-builder.yml index 0860714..b0b37be 100644 --- a/.github/workflows/docker-mod-builder.yml +++ b/.github/workflows/docker-mod-builder.yml @@ -21,6 +21,7 @@ on: MOD_VERSION_OVERRIDE: required: false type: string + default: "false" MULTI_ARCH: required: false type: string From ca978a104ed6e6c656822928658eb5382307f7c5 Mon Sep 17 00:00:00 2001 From: thespad Date: Wed, 11 Sep 2024 17:52:24 +0100 Subject: [PATCH 3/4] `default` only works with manual runs so use || --- .github/workflows/docker-mod-builder.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker-mod-builder.yml b/.github/workflows/docker-mod-builder.yml index b0b37be..0eaa46e 100644 --- a/.github/workflows/docker-mod-builder.yml +++ b/.github/workflows/docker-mod-builder.yml @@ -21,7 +21,6 @@ on: MOD_VERSION_OVERRIDE: required: false type: string - default: "false" MULTI_ARCH: required: false type: string @@ -56,7 +55,7 @@ jobs: echo "BASEIMAGE=${{ inputs.BASEIMAGE }}" >> $GITHUB_ENV echo "MODNAME=${{ inputs.MODNAME }}" >> $GITHUB_ENV echo "MOD_VERSION=${{ inputs.MOD_VERSION }}" >> $GITHUB_ENV - echo "MOD_VERSION_OVERRIDE=${{ inputs.MOD_VERSION_OVERRIDE }}" >> $GITHUB_ENV + echo "MOD_VERSION_OVERRIDE=${{ inputs.MOD_VERSION_OVERRIDE || 'false' }}" >> $GITHUB_ENV echo "MULTI_ARCH=${{ inputs.MULTI_ARCH }}" >> $GITHUB_ENV echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY echo "> GITHUB_REPO=${{ inputs.GITHUB_REPO }}" >> $GITHUB_STEP_SUMMARY @@ -64,7 +63,7 @@ jobs: echo "> BASEIMAGE=${{ inputs.BASEIMAGE }}" >> $GITHUB_STEP_SUMMARY echo "> MODNAME=${{ inputs.MODNAME }}" >> $GITHUB_STEP_SUMMARY echo "> MOD_VERSION=${{ inputs.MOD_VERSION }}" >> $GITHUB_STEP_SUMMARY - echo "> MOD_VERSION_OVERRIDE=${{ inputs.MOD_VERSION_OVERRIDE }}" >> $GITHUB_STEP_SUMMARY + echo "> MOD_VERSION_OVERRIDE=${{ inputs.MOD_VERSION_OVERRIDE || 'false' }}" >> $GITHUB_STEP_SUMMARY echo "> MULTI_ARCH=${{ inputs.MULTI_ARCH }}" >> $GITHUB_STEP_SUMMARY - name: Set up QEMU From d513906a6e429f92c75505a574b12736c0f348da Mon Sep 17 00:00:00 2001 From: thespad Date: Wed, 11 Sep 2024 19:31:30 +0100 Subject: [PATCH 4/4] Default MULTI_ARCH to false if not set --- .github/workflows/docker-mod-builder.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-mod-builder.yml b/.github/workflows/docker-mod-builder.yml index 0eaa46e..5b1710a 100644 --- a/.github/workflows/docker-mod-builder.yml +++ b/.github/workflows/docker-mod-builder.yml @@ -56,7 +56,7 @@ jobs: echo "MODNAME=${{ inputs.MODNAME }}" >> $GITHUB_ENV echo "MOD_VERSION=${{ inputs.MOD_VERSION }}" >> $GITHUB_ENV echo "MOD_VERSION_OVERRIDE=${{ inputs.MOD_VERSION_OVERRIDE || 'false' }}" >> $GITHUB_ENV - echo "MULTI_ARCH=${{ inputs.MULTI_ARCH }}" >> $GITHUB_ENV + echo "MULTI_ARCH=${{ inputs.MULTI_ARCH || 'false' }}" >> $GITHUB_ENV echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY echo "> GITHUB_REPO=${{ inputs.GITHUB_REPO }}" >> $GITHUB_STEP_SUMMARY echo "> ENDPOINT=${{ inputs.ENDPOINT }}" >> $GITHUB_STEP_SUMMARY @@ -64,7 +64,7 @@ jobs: echo "> MODNAME=${{ inputs.MODNAME }}" >> $GITHUB_STEP_SUMMARY echo "> MOD_VERSION=${{ inputs.MOD_VERSION }}" >> $GITHUB_STEP_SUMMARY echo "> MOD_VERSION_OVERRIDE=${{ inputs.MOD_VERSION_OVERRIDE || 'false' }}" >> $GITHUB_STEP_SUMMARY - echo "> MULTI_ARCH=${{ inputs.MULTI_ARCH }}" >> $GITHUB_STEP_SUMMARY + echo "> MULTI_ARCH=${{ inputs.MULTI_ARCH || 'false' }}" >> $GITHUB_STEP_SUMMARY - name: Set up QEMU uses: docker/setup-qemu-action@v3 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