Skip to content

Commit 5911aab

Browse files
committed
build(ci): update Build workflow to use dynamic pre-release tags
also, removes all "pre-release" tags
1 parent dcf1d6e commit 5911aab

File tree

1 file changed

+27
-17
lines changed

1 file changed

+27
-17
lines changed

.github/workflows/Build.yml

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
push:
55
tags:
66
- '[0-9]+.[0-9]+.[0-9]+' # Stable release tags (e.g., 1.2.3)
7-
- 'PR-[a-f0-9]{7}' # Pre-release tags with 7-char commit SHA (e.g., PR-abc1234)
7+
- 'PR-[a-f0-9]+' # Pre-release tags with 7-char commit SHA (e.g., PR-abc1234)
88
workflow_dispatch:
99

1010
permissions:
@@ -80,38 +80,47 @@ jobs:
8080
with:
8181
name: release-apk
8282

83-
- name: Get previous tag
84-
id: previousTag
83+
- name: Get previous stable tag
84+
id: previousStableTag
8585
run: |
86-
name=$(git --no-pager tag --sort=creatordate --merged ${{ github.ref_name }} | tail -2 | head -1)
87-
echo "previousTag: $name"
88-
echo "previousTag=$name" >> $GITHUB_ENV
86+
name=$(git tag --sort=-creatordate | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' | head -1)
87+
echo "previousStableTag=$name" >> $GITHUB_ENV
88+
89+
- name: Get previous pre-release tag
90+
id: previousPreReleaseTag
91+
run: |
92+
name=$(git tag --sort=-creatordate | grep -E '^PR-[a-f0-9]{7}$' | head -1)
93+
if [ -z "$name" ]; then
94+
name="pre-release"
95+
fi
96+
echo "previousPreReleaseTag=$name" >> $GITHUB_ENV
8997
9098
- name: Generate changelogs
9199
id: changelog
92100
uses: requarks/changelog-action@v1
93101
with:
94102
token: ${{ secrets.GITHUB_TOKEN }}
95103
fromTag: ${{ github.ref_name }}
96-
toTag: ${{ env.previousTag || 'HEAD' }}
97-
excludeTypes: ${{ !startsWith(github.ref, 'refs/tags/PR-') && 'build,docs,other,style' || '' }}
104+
toTag: ${{ startsWith(github.ref, 'refs/tags/PR-') && env.previousPreReleaseTag || env.previousStableTag || 'HEAD' }}
105+
excludeTypes: ${{ !startsWith(github.ref, 'refs/tags/PR-') && 'build,docs,other,style,refactor' || '' }}
98106
writeToFile: false
99107

108+
100109
- name: Manage pre-release
101110
if: startsWith(github.ref, 'refs/tags/PR-')
102111
env:
103112
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
104113
run: |
105-
echo "Attempting to delete pre-release tag..."
106-
114+
echo "Attempting to remove the pre-release tag..."
115+
107116
git tag -d pre-release || echo "Local tag 'pre-release' does not exist."
108117
git push origin :refs/tags/pre-release || echo "Remote tag 'pre-release' does not exist."
109-
118+
gh release delete pre-release --yes || echo "Failed to delete last pre-release."
119+
110120
CLEANED_CHANGES=$(echo '${{ steps.changelog.outputs.changes }}' | sed 's/`/`/g')
111-
121+
112122
echo "Creating new pre-release..."
113-
gh release delete pre-release --yes || echo "Failed to delete last pre-release."
114-
gh release create pre-release \
123+
gh release create ${{ github.ref_name }} \
115124
--title "${{ github.ref_name }}" \
116125
--notes "$(cat << EOF
117126
##### _NOTE: Android TV is incomplete, the providers on this port are not yet installable. Though, you could test it now._
@@ -134,15 +143,16 @@ jobs:
134143
--prerelease \
135144
flixclusive-release.apk
136145
146+
137147
- name: Manage stable release
138148
if: "!startsWith(github.ref, 'refs/tags/PR-')"
139149
env:
140150
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
141151
run: |
142152
gh release delete ${{ github.ref_name }} --yes || echo "Failed to delete ${{ github.ref_name }} release."
143-
153+
144154
CLEANED_CHANGES=$(echo '${{ steps.changelog.outputs.changes }}' | sed 's/`/`/g')
145-
155+
146156
gh release create ${{ github.ref_name }} \
147157
--title "${{ github.ref_name }}" \
148158
--notes "$(cat << EOF
@@ -210,4 +220,4 @@ jobs:
210220
git config user.email github-actions@github.com
211221
git add .
212222
git commit -m "Archive $(date +'%Y-%m-%d') [flixclusiveorg/Flixclusive@${GITHUB_SHA}]" || true
213-
git push
223+
git push

0 commit comments

Comments
 (0)