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