From db4f44bdc13e267bdbe4875e338441310d3cd69a Mon Sep 17 00:00:00 2001
From: Michael Kriese <michael.kriese@visualon.de>
Date: Wed, 12 Feb 2020 10:08:37 +0100
Subject: [PATCH] chore(ci): fix docker release (#5462)

---
 .github/workflows/release-docker.sh | 34 ++++++++++++++++++++
 .github/workflows/release.yml       | 50 +++++------------------------
 2 files changed, 42 insertions(+), 42 deletions(-)
 create mode 100755 .github/workflows/release-docker.sh

diff --git a/.github/workflows/release-docker.sh b/.github/workflows/release-docker.sh
new file mode 100755
index 0000000000..60683c277a
--- /dev/null
+++ b/.github/workflows/release-docker.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+set -e
+
+PLATFORM=${PLATFORM-linux/amd64}
+DOCKER_REPO=${DOCKER_REPO-renovate/cache-test}
+DOCKER_TAG=${DOCKER_TAG-slim}
+
+# Strip git ref prefix from version
+VERSION=${REF#refs/tags/}
+
+SEMVER_REGEX="^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)?$"
+
+if ! [[ "$VERSION" =~ $SEMVER_REGEX ]]; then
+  echo Not a semver tag - skipping: ${REF#refs/tags/}
+  exit 1
+fi
+
+major=${BASH_REMATCH[1]}
+minor=${BASH_REMATCH[2]}
+patch=${BASH_REMATCH[3]}
+slim=${DOCKER_TAG#latest}
+slim=${slim:+-}${slim}
+
+ARGS=(--platform=${PLATFORM} --cache-from=${DOCKER_REPO}:cache-${DOCKER_TAG} --push --tag=${DOCKER_REPO}:${DOCKER_TAG})
+
+# Tag for versions additional
+for tag in {"${major}${slim}","${major}.${minor}${slim}","${major}.${minor}.${patch}${slim}"}; do
+  ARGS+=(--tag ${DOCKER_REPO}:${tag})
+done
+
+ARGS+=(--file=./${DOCKER_FILE} .)
+
+set -x
+docker buildx build "${ARGS[@]}"
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 194dc18e9c..43f37ab85c 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -41,8 +41,8 @@ jobs:
       - name: Build the Docker image
         run: |
           docker buildx build \
-            --platform ${PLATFORM} \
-            --output=type=docker \
+            --platform=${PLATFORM} \
+            --load \
             --cache-from=${DOCKER_REPO}:cache-${DOCKER_TAG} \
             --tag=renovate \
             --file=./${DOCKER_FILE} .
@@ -56,44 +56,10 @@ jobs:
       - name: Image size
         run: docker image ls | grep renovate
 
-      - name: Generate tags
-        run: |
-          # Strip git ref prefix from version
-          VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
-
-
-          # Tag base
-          tags="${DOCKER_REPO}:${DOCKER_TAG}"
-          echo "Tagging ${DOCKER_REPO}:${DOCKER_TAG}"
-
-          SEMVER_REGEX="^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)?$"
-
-          if ! [[ "$VERSION" =~ $SEMVER_REGEX ]]; then
-            echo Not a semver tag - skipping
-            exit 1
-          fi
-
-          major=${BASH_REMATCH[1]}
-          minor=${BASH_REMATCH[2]}
-          patch=${BASH_REMATCH[3]}
-          slim=${DOCKER_TAG#latest}
-          slim=${slim:+-}${slim}
-
+      - name: Docker registry login
+        run: echo "${{ secrets.DOCKER_RENOVATERELEASE_TOKEN }}" | docker login -u renovaterelease --password-stdin
 
-          # Tag for versions additional
-          for tag in {"${major}${slim}","${major}.${minor}${slim}","${major}.${minor}.${patch}${slim}"}; do
-            echo "Tagging ${DOCKER_REPO}:${tag}"
-            tags+=",${DOCKER_REPO}:${tag}"
-          done
-
-          echo "::set-env name=TAGS::${tags}"
-
-      - name: Push the Docker image
-        run: |
-          echo "${{ secrets.DOCKER_RENOVATERELEASE_TOKEN }}" | docker login -u renovaterelease --password-stdin
-          docker buildx build \
-            --platform ${PLATFORM} \
-            --output=type=registry \
-            --cache-from=${DOCKER_REPO}:cache-${DOCKER_TAG} \
-            --tag=${TAGS} \
-            --file=./${DOCKER_FILE} .
+      - name: Generate tags
+        env:
+          REF: ${{ github.ref }}
+        run: ./.github/workflows/docker-release.sh
-- 
GitLab