From a74f81c3991a2c3dd05607b30ebf68e2e35fdd04 Mon Sep 17 00:00:00 2001 From: Ruakij Date: Sun, 8 Oct 2023 18:00:37 +0200 Subject: [PATCH] Change how builds are made --- scripts/utils/build-multiarch.sh | 9 +++--- scripts/utils/build-ownarch.sh | 7 ++--- scripts/utils/prepare.sh | 48 ++++++++++++++++++++++++-------- 3 files changed, 43 insertions(+), 21 deletions(-) diff --git a/scripts/utils/build-multiarch.sh b/scripts/utils/build-multiarch.sh index 56794c4..7d88545 100755 --- a/scripts/utils/build-multiarch.sh +++ b/scripts/utils/build-multiarch.sh @@ -2,8 +2,7 @@ PLATFORM=${PLATFORM:-"linux/amd64,linux/arm64/v8,linux/arm/v7"} docker buildx build \ ---platform $PLATFORM \ ---tag $TAG:latest \ ---tag "${TAG}:${VERSION}" \ -$EXTRA_ARGS \ -$WORKDIR + --platform $PLATFORM \ + $TAGS_ARG \ + $EXTRA_ARGS \ + $WORKDIR diff --git a/scripts/utils/build-ownarch.sh b/scripts/utils/build-ownarch.sh index 1f43303..8673f0e 100755 --- a/scripts/utils/build-ownarch.sh +++ b/scripts/utils/build-ownarch.sh @@ -1,7 +1,6 @@ #!/bin/bash docker build \ ---tag $TAG:latest \ ---tag $TAG:$VERSION \ -$EXTRA_ARGS \ -"$WORKDIR" + $TAGS_ARG \ + $EXTRA_ARGS \ + "$WORKDIR" diff --git a/scripts/utils/prepare.sh b/scripts/utils/prepare.sh index 8159b74..5eab4b2 100755 --- a/scripts/utils/prepare.sh +++ b/scripts/utils/prepare.sh @@ -24,32 +24,56 @@ fi cd "$repositoryFolder" if [ "$cloned" != True ]; then - # Checkout default-branch in case GIT_CHECKOUT was different + # Checkout default-branch in case GIT_CHECKOUT was different defaultBranch=$(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@') - git checkout "${defaultBranch}" + git checkout "${defaultBranch}" - git pull # Get changes + git pull # Get changes fi # Checkout when set if [ "$GIT_CHECKOUT" != "" ]; then # Handle special directives if [ "$GIT_CHECKOUT" = "latest-tag" ]; then - GIT_CHECKOUT=$(git describe --tags `git rev-list --tags --max-count=1`) # Get latest tag + GIT_CHECKOUT=$(git describe --tags $(git rev-list --tags --max-count=1)) # Get latest tag fi git checkout $GIT_CHECKOUT fi - # --- VERSION --- -# Get current version to build -VERSION=$(git describe --tags --long) -if [ $? -ne 0 ]; then - VERSION=$(git rev-parse HEAD) +# When not set +if [ "$GIT_CHECKOUT" == "" ]; then + # Get current version to build + VERSION=$(git describe --tags --long) + if [ $? -ne 0 ]; then + VERSION=$(git rev-parse HEAD) + fi + export VERSION fi -export VERSION printf "Version: ${VERSION}\n" -TAG=${TAG:-"${TAGPREFIX}${NAME}"} -printf "> ${TAG}\n" +# --- TAGS --- +IFS='-.' read -ra ADDR <<<"$VERSION" + +TAG_VERS=("latest") +currentTag="${ADDR[0]}" +TAG_VERS+=("$currentTag") + +for i in $(seq 1 $((${#ADDR[@]} - 1))); do + delimiter="." + if [[ $VERSION == *"${currentTag}-${ADDR[$i]}"* ]]; then + delimiter="-" + fi + + currentTag="${currentTag}${delimiter}${ADDR[$i]}" + TAG_VERS+=("$currentTag") +done + +# Generate TAG_VERS_ARG +printf "TAG_VERS:\n" +for tag_ver in "${TAG_VERS[@]}"; do + TAG="${TAGPREFIX}${NAME}:${tag_ver}" + TAGS_ARG="$TAGS_ARG --tag $TAG" + echo "- $TAG" +done