diff --git a/.gitea/workflows/publish-image.yml b/.gitea/workflows/publish-image.yml index d8469f7..72924d4 100644 --- a/.gitea/workflows/publish-image.yml +++ b/.gitea/workflows/publish-image.yml @@ -17,10 +17,10 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Install Docker CLI + - name: Install Docker CLI + Buildx shell: sh run: | - apk add --no-cache docker-cli + apk add --no-cache docker-cli docker-cli-buildx - name: Build image metadata id: meta @@ -73,13 +73,11 @@ jobs: REF_TYPE="${GITHUB_REF_TYPE}" REF_NAME="${GITHUB_REF_NAME}" - TAG_ARGS="-t $IMAGE:$SHA_TAG" - PUSH_TAGS="$SHA_TAG" + TAG_ARGS="--tag $IMAGE:$SHA_TAG" # latest only for pushes to main if [ "$REF_TYPE" = "branch" ] && [ "$REF_NAME" = "main" ]; then - TAG_ARGS="$TAG_ARGS -t $IMAGE:latest" - PUSH_TAGS="$PUSH_TAGS latest" + TAG_ARGS="$TAG_ARGS --tag $IMAGE:latest" fi # 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]*) MAJOR="$(echo "$REF_NAME" | cut -d. -f1)" MINOR="$(echo "$REF_NAME" | cut -d. -f2)" - TAG_ARGS="$TAG_ARGS -t $IMAGE:$REF_NAME -t $IMAGE:$MAJOR.$MINOR -t $IMAGE:$MAJOR" - PUSH_TAGS="$PUSH_TAGS $REF_NAME $MAJOR.$MINOR $MAJOR" + TAG_ARGS="$TAG_ARGS --tag $IMAGE:$REF_NAME --tag $IMAGE:$MAJOR.$MINOR --tag $IMAGE:$MAJOR" ;; *) - TAG_ARGS="$TAG_ARGS -t $IMAGE:$REF_NAME" - PUSH_TAGS="$PUSH_TAGS $REF_NAME" + TAG_ARGS="$TAG_ARGS --tag $IMAGE:$REF_NAME" ;; esac fi - docker build $TAG_ARGS . - - for TAG in $PUSH_TAGS; do - docker push "$IMAGE:$TAG" - done + docker buildx version + docker buildx build --push $TAG_ARGS .