@@ -58,43 +58,57 @@ jobs:
5858 name : release-assets
5959 path : release-assets
6060
61-
62- - name : Create main release
63- id : release_main
64- if : github.ref_name == 'main'
65- uses : rymndhng/release-on-push-action@master
66- with :
67- bump_version_scheme : minor
68- tag_prefix : v
69- release_name : <RELEASE_TAG>
70-
71- - name : Compute branch release tag
72- if : github.ref_name != 'main'
61+ - name : Compute release tag
7362 run : |
7463 git fetch --tags --force
7564
76- PREFIX="temp-${SAFE_BRANCH}-v"
77-
78- LAST_NUMBER="$(
79- git tag --list "${PREFIX}*" \
80- | sed "s/^${PREFIX}//" \
81- | grep -E '^[0-9]+$' \
82- | sort -n \
83- | tail -n 1
84- )"
85-
86- if [ -z "$LAST_NUMBER" ]; then
87- NEXT_NUMBER=1
65+ if [ "$GITHUB_REF_NAME" = "main" ]; then
66+ LAST_VERSION="$(
67+ git tag --list 'v[0-9]*.[0-9]*.[0-9]*' \
68+ | sed 's/^v//' \
69+ | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' \
70+ | sort -V \
71+ | tail -n 1
72+ )"
73+
74+ if [ -z "$LAST_VERSION" ]; then
75+ NEXT_VERSION="0.1.0"
76+ else
77+ MAJOR="$(echo "$LAST_VERSION" | cut -d. -f1)"
78+ MINOR="$(echo "$LAST_VERSION" | cut -d. -f2)"
79+ PATCH="$(echo "$LAST_VERSION" | cut -d. -f3)"
80+
81+ MINOR=$((MINOR + 1))
82+ PATCH=0
83+
84+ NEXT_VERSION="${MAJOR}.${MINOR}.${PATCH}"
85+ fi
86+
87+ RELEASE_TAG="v${NEXT_VERSION}"
8888 else
89- NEXT_NUMBER=$((LAST_NUMBER + 1))
89+ PREFIX="temp-${SAFE_BRANCH}-v"
90+
91+ LAST_NUMBER="$(
92+ git tag --list "${PREFIX}*" \
93+ | sed "s/^${PREFIX}//" \
94+ | grep -E '^[0-9]+$' \
95+ | sort -n \
96+ | tail -n 1
97+ )"
98+
99+ if [ -z "$LAST_NUMBER" ]; then
100+ NEXT_NUMBER=1
101+ else
102+ NEXT_NUMBER=$((LAST_NUMBER + 1))
103+ fi
104+
105+ RELEASE_TAG="${PREFIX}${NEXT_NUMBER}"
90106 fi
91107
92- RELEASE_TAG="${PREFIX}${NEXT_NUMBER}"
93-
94108 echo "RELEASE_TAG=$RELEASE_TAG" >> "$GITHUB_ENV"
109+ echo "Computed release tag: $RELEASE_TAG"
95110
96- - name : Create branch release
97- if : github.ref_name != 'main'
111+ - name : Create GitHub release and upload assets
98112 uses : softprops/action-gh-release@v1
99113 with :
100114 tag_name : ${{ env.RELEASE_TAG }}
@@ -104,20 +118,6 @@ jobs:
104118 env :
105119 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
106120
107- - name : Resolve main release tag
108- if : github.ref_name == 'main'
109- run : |
110- echo "RELEASE_TAG=${{ steps.release_main.outputs.tag_name }}" >> "$GITHUB_ENV"
111-
112- - name : Upload main release assets
113- if : github.ref_name == 'main'
114- uses : softprops/action-gh-release@v1
115- with :
116- tag_name : ${{ env.RELEASE_TAG }}
117- files : release-assets/a
118- env :
119- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
120-
121121 - name : Move latest tag to latest main release
122122 if : github.ref_name == 'main'
123123 run : |
0 commit comments