refactor: enhance Docker CLI installation and build process in publish-image workflow
This commit is contained in:
@@ -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
|
|
||||||
|
|||||||
Reference in New Issue
Block a user