refactor: simplify error handling in Docker workflow by using set -eu
Some checks failed
Build and Push Docker Image / docker (push) Failing after 5s
Some checks failed
Build and Push Docker Image / docker (push) Failing after 5s
This commit is contained in:
@@ -29,7 +29,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -eu
|
||||||
apk add --no-cache git ca-certificates
|
apk add --no-cache git ca-certificates
|
||||||
REF="$GITHUB_REF"
|
REF="$GITHUB_REF"
|
||||||
REPO_URL="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY"
|
REPO_URL="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY"
|
||||||
@@ -50,7 +50,7 @@ jobs:
|
|||||||
IMAGE_NAME_VAR: ${{ vars.IMAGE_NAME }}
|
IMAGE_NAME_VAR: ${{ vars.IMAGE_NAME }}
|
||||||
GITEA_REGISTRY_VAR: ${{ vars.GITEA_REGISTRY }}
|
GITEA_REGISTRY_VAR: ${{ vars.GITEA_REGISTRY }}
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -eu
|
||||||
# Derive registry/namespace/image from environment provided by runner
|
# Derive registry/namespace/image from environment provided by runner
|
||||||
# GITHUB_REPOSITORY is like "owner/repo"
|
# GITHUB_REPOSITORY is like "owner/repo"
|
||||||
OWNER=${GITHUB_REPOSITORY%%/*}
|
OWNER=${GITHUB_REPOSITORY%%/*}
|
||||||
@@ -82,36 +82,36 @@ jobs:
|
|||||||
OWNER: ${{ steps.vars.outputs.owner }}
|
OWNER: ${{ steps.vars.outputs.owner }}
|
||||||
IMAGE: ${{ steps.vars.outputs.image }}
|
IMAGE: ${{ steps.vars.outputs.image }}
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -eu
|
||||||
IMAGE_FULL="$REGISTRY/$OWNER/$IMAGE"
|
IMAGE_FULL="$REGISTRY/$OWNER/$IMAGE"
|
||||||
|
|
||||||
REF="$GITHUB_REF"
|
REF="$GITHUB_REF"
|
||||||
SHA_SHORT=$(echo "$GITHUB_SHA" | cut -c1-8)
|
SHA_SHORT=$(echo "$GITHUB_SHA" | cut -c1-8)
|
||||||
TAGS=()
|
TAGS=""
|
||||||
|
|
||||||
case "$REF" in
|
case "$REF" in
|
||||||
refs/heads/*)
|
refs/heads/*)
|
||||||
BRANCH=${REF#refs/heads/}
|
BRANCH=${REF#refs/heads/}
|
||||||
# latest for main/master
|
# latest for main/master
|
||||||
if [ "$BRANCH" = "main" ] || [ "$BRANCH" = "master" ]; then
|
if [ "$BRANCH" = "main" ] || [ "$BRANCH" = "master" ]; then
|
||||||
TAGS+=("latest")
|
TAGS="${TAGS} latest"
|
||||||
fi
|
fi
|
||||||
# branch tag
|
# branch tag
|
||||||
SAFE_BRANCH=$(echo "$BRANCH" | tr '/' '-' )
|
SAFE_BRANCH=$(echo "$BRANCH" | tr '/' '-' )
|
||||||
TAGS+=("$SAFE_BRANCH")
|
TAGS="${TAGS} ${SAFE_BRANCH}"
|
||||||
;;
|
;;
|
||||||
refs/tags/*)
|
refs/tags/*)
|
||||||
TAG=${REF#refs/tags/}
|
TAG=${REF#refs/tags/}
|
||||||
TAGS+=("$TAG")
|
TAGS="${TAGS} ${TAG}"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# always include short sha
|
# always include short sha
|
||||||
TAGS+=("$SHA_SHORT")
|
TAGS="${TAGS} ${SHA_SHORT}"
|
||||||
|
|
||||||
# Build -t args
|
# Build -t args
|
||||||
TAG_ARGS=""
|
TAG_ARGS=""
|
||||||
for t in "${TAGS[@]}"; do
|
for t in $TAGS; do
|
||||||
TAG_ARGS="$TAG_ARGS -t $IMAGE_FULL:$t"
|
TAG_ARGS="$TAG_ARGS -t $IMAGE_FULL:$t"
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -126,7 +126,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Ensure buildx builder
|
- name: Ensure buildx builder
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -eu
|
||||||
docker buildx inspect dindbuilder >/dev/null 2>&1 || docker buildx create --name dindbuilder --driver docker-container --use
|
docker buildx inspect dindbuilder >/dev/null 2>&1 || docker buildx create --name dindbuilder --driver docker-container --use
|
||||||
|
|
||||||
- name: Build and push (linux/amd64)
|
- name: Build and push (linux/amd64)
|
||||||
@@ -135,7 +135,7 @@ jobs:
|
|||||||
IMAGE_FULL: ${{ steps.tags.outputs.image_full }}
|
IMAGE_FULL: ${{ steps.tags.outputs.image_full }}
|
||||||
TAG_ARGS: ${{ steps.tags.outputs.tag_args }}
|
TAG_ARGS: ${{ steps.tags.outputs.tag_args }}
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -eu
|
||||||
echo "Building $IMAGE_FULL with tags: $TAG_ARGS"
|
echo "Building $IMAGE_FULL with tags: $TAG_ARGS"
|
||||||
docker buildx build \
|
docker buildx build \
|
||||||
--platform linux/amd64 \
|
--platform linux/amd64 \
|
||||||
|
|||||||
Reference in New Issue
Block a user