refactor: enhance Docker CLI installation and build process in publish-image workflow
Build / build (push) Successful in 24s
Publish Docker Image / docker (push) Successful in 19s

This commit is contained in:
Lukas Höppner
2026-05-19 17:47:57 +02:00
parent fefd921817
commit 211c72556d
+8 -15
View File
@@ -17,10 +17,10 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Install Docker CLI - name: Install Docker CLI + Buildx
shell: sh shell: sh
run: | run: |
apk add --no-cache docker-cli apk add --no-cache docker-cli docker-cli-buildx
- name: Build image metadata - name: Build image metadata
id: meta id: meta
@@ -73,13 +73,11 @@ jobs:
REF_TYPE="${GITHUB_REF_TYPE}" REF_TYPE="${GITHUB_REF_TYPE}"
REF_NAME="${GITHUB_REF_NAME}" REF_NAME="${GITHUB_REF_NAME}"
TAG_ARGS="-t $IMAGE:$SHA_TAG" TAG_ARGS="--tag $IMAGE:$SHA_TAG"
PUSH_TAGS="$SHA_TAG"
# latest only for pushes to main # latest only for pushes to main
if [ "$REF_TYPE" = "branch" ] && [ "$REF_NAME" = "main" ]; then if [ "$REF_TYPE" = "branch" ] && [ "$REF_NAME" = "main" ]; then
TAG_ARGS="$TAG_ARGS -t $IMAGE:latest" TAG_ARGS="$TAG_ARGS --tag $IMAGE:latest"
PUSH_TAGS="$PUSH_TAGS latest"
fi fi
# semver tags for refs like v1.2.3 -> v1.2.3, v1.2, v1 # semver tags for refs like v1.2.3 -> v1.2.3, v1.2, v1
@@ -88,18 +86,13 @@ jobs:
v[0-9]*.[0-9]*.[0-9]*) v[0-9]*.[0-9]*.[0-9]*)
MAJOR="$(echo "$REF_NAME" | cut -d. -f1)" MAJOR="$(echo "$REF_NAME" | cut -d. -f1)"
MINOR="$(echo "$REF_NAME" | cut -d. -f2)" MINOR="$(echo "$REF_NAME" | cut -d. -f2)"
TAG_ARGS="$TAG_ARGS -t $IMAGE:$REF_NAME -t $IMAGE:$MAJOR.$MINOR -t $IMAGE:$MAJOR" TAG_ARGS="$TAG_ARGS --tag $IMAGE:$REF_NAME --tag $IMAGE:$MAJOR.$MINOR --tag $IMAGE:$MAJOR"
PUSH_TAGS="$PUSH_TAGS $REF_NAME $MAJOR.$MINOR $MAJOR"
;; ;;
*) *)
TAG_ARGS="$TAG_ARGS -t $IMAGE:$REF_NAME" TAG_ARGS="$TAG_ARGS --tag $IMAGE:$REF_NAME"
PUSH_TAGS="$PUSH_TAGS $REF_NAME"
;; ;;
esac esac
fi fi
docker build $TAG_ARGS . docker buildx version
docker buildx build --push $TAG_ARGS .
for TAG in $PUSH_TAGS; do
docker push "$IMAGE:$TAG"
done