From ee11a8e3a092665a9ac18a13ee483a3a91d1b4bf Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 31 Mar 2024 09:48:20 +0200 Subject: [PATCH 1/3] Add check for duplicate tags --- .github/workflows/release.yml | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 92a31c48be..6bbb029498 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -147,16 +147,34 @@ jobs: composer dump-autoload releaseName=$version - zipName=FireflyIII-$version.zip + originalName=$version tarName=FireflyIII-$version.tar.gz if [[ "develop" == "$version" ]]; then [[ -z $(git status --untracked-files=normal --porcelain) ]] && echo "this branch is clean, no need to push..." && exit 0; releaseName=$version-$(date +'%Y%m%d') + originalName=$releaseName zipName=FireflyIII-develop.zip tarName=FireflyIII-develop.tar.gz fi + # in both cases, if the release or tag already exists, add ".1" until it no longer exists. + tagFound=true + tagCount=1 + while [ $tagFound ] + do + if [ $(git tag -l "$releaseName") ]; then + echo "Tag $releaseName exists already." + releaseName="$originalName"."$tagCount" + echo "Tag for release is now $releaseName" + else + echo "Tag $releaseName does not exist, can continue" + tagFound=false + fi + done + echo "Will use tag and release name $releaseName." + exit 0 + git add -A if test -f "output.txt"; then git reset output.txt From bbccbef57852db947dccf2f131176f8802a5f36f Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 31 Mar 2024 09:55:17 +0200 Subject: [PATCH 2/3] Fix loop --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6bbb029498..568d0be2c3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -161,7 +161,7 @@ jobs: # in both cases, if the release or tag already exists, add ".1" until it no longer exists. tagFound=true tagCount=1 - while [ $tagFound ] + while [ "$tagFound" = true ] do if [ $(git tag -l "$releaseName") ]; then echo "Tag $releaseName exists already." From 0e8e364074804c24c5f8b88be71b68f2f606c5d0 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 31 Mar 2024 10:01:21 +0200 Subject: [PATCH 3/3] Can now release multiple development builds per day --- .github/workflows/release.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 568d0be2c3..a97c67c5c8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -173,7 +173,6 @@ jobs: fi done echo "Will use tag and release name $releaseName." - exit 0 git add -A if test -f "output.txt"; then