3232      quay_username : ${{ secrets.RELEASE_QUAY_USERNAME }} 
3333      quay_password : ${{ secrets.RELEASE_QUAY_TOKEN }} 
3434
35+   setup-variables :
36+     name : Setup Release Variables 
37+     if : github.repository == 'argoproj/argo-cd' 
38+     runs-on : ubuntu-22.04 
39+     outputs :
40+       is_pre_release : ${{ steps.var.outputs.is_pre_release }} 
41+       is_latest_release : ${{ steps.var.outputs.is_latest_release }} 
42+     steps :
43+       - name : Checkout code 
44+         uses : actions/checkout@8410ad0602e1e429cee44a835ae9f77f654a6694  #  v4.0.0
45+         with :
46+           fetch-depth : 0 
47+           token : ${{ secrets.GITHUB_TOKEN }} 
48+       - name : Setup variables 
49+         id : var 
50+         run : | 
51+           set -xue 
52+           # Fetch all tag information 
53+           git fetch --prune --tags --force 
54+ 
55+           LATEST_RELEASE_TAG=$(git -c 'versionsort.suffix=-rc' tag --list --sort=version:refname | grep -v '-' | tail -n1) 
56+ 
57+           PRE_RELEASE=false 
58+           # Check if latest tag is a pre-release 
59+           if echo ${{ github.ref_name }} | grep -E -- '-rc[0-9]+$';then 
60+             PRE_RELEASE=true 
61+           fi 
62+ 
63+           IS_LATEST=false 
64+           # Ensure latest release tag matches github.ref_name 
65+           if [[ $LATEST_RELEASE_TAG == ${{ github.ref_name }} ]];then 
66+             IS_LATEST=true 
67+           fi 
68+           echo "is_pre_release=$PRE_RELEASE" >> $GITHUB_OUTPUT 
69+           echo "is_latest_release=$IS_LATEST" >> $GITHUB_OUTPUT 
70+ 
3571argocd-image-provenance :
3672    needs : [argocd-image] 
3773    permissions :
@@ -50,15 +86,17 @@ jobs:
5086
5187  goreleaser :
5288    needs :
89+       - setup-variables 
5390      - argocd-image 
5491      - argocd-image-provenance 
5592    permissions :
5693      contents : write  #  used for uploading assets
5794    if : github.repository == 'argoproj/argo-cd' 
5895    runs-on : ubuntu-22.04 
96+     env :
97+       GORELEASER_MAKE_LATEST : ${{ needs.setup-variables.outputs.is_latest_release }} 
5998    outputs :
6099      hashes : ${{ steps.hash.outputs.hashes }} 
61- 
62100    steps :
63101      - name : Checkout code 
64102        uses : actions/checkout@8410ad0602e1e429cee44a835ae9f77f654a6694  #  v4.0.0
@@ -142,7 +180,7 @@ jobs:
142180    permissions :
143181      contents : write  #  Needed for release uploads
144182    outputs :
145-       hashes : ${{ steps.sbom-hash.outputs.hashes}} 
183+       hashes : ${{ steps.sbom-hash.outputs.hashes  }} 
146184    if : github.repository == 'argoproj/argo-cd' 
147185    runs-on : ubuntu-22.04 
148186    steps :
@@ -221,6 +259,7 @@ jobs:
221259
222260  post-release :
223261    needs :
262+       - setup-variables 
224263      - argocd-image 
225264      - goreleaser 
226265      - generate-sbom 
@@ -229,6 +268,8 @@ jobs:
229268      pull-requests : write  #  Needed to create PR for VERSION update.
230269    if : github.repository == 'argoproj/argo-cd' 
231270    runs-on : ubuntu-22.04 
271+     env :
272+       TAG_STABLE : ${{ needs.setup-variables.outputs.is_latest_release }} 
232273    steps :
233274      - name : Checkout code 
234275        uses : actions/checkout@8410ad0602e1e429cee44a835ae9f77f654a6694  #  v4.0.0
@@ -242,27 +283,6 @@ jobs:
242283          git config --global user.email '[email protected] ' 243284          git config --global user.name 'CI' 
244285
245- name : Check if tag is the latest version and not a pre-release 
246-         run : | 
247-           set -xue 
248-           # Fetch all tag information 
249-           git fetch --prune --tags --force 
250- 
251-           LATEST_TAG=$(git -c 'versionsort.suffix=-rc' tag --list --sort=version:refname | tail -n1) 
252- 
253-           PRE_RELEASE=false 
254-           # Check if latest tag is a pre-release 
255-           if echo $LATEST_TAG | grep -E -- '-rc[0-9]+$';then 
256-             PRE_RELEASE=true 
257-           fi 
258- 
259-           # Ensure latest tag matches github.ref_name & not a pre-release 
260-           if [[ $LATEST_TAG == ${{ github.ref_name }} ]] && [[ $PRE_RELEASE != 'true' ]];then 
261-             echo "TAG_STABLE=true" >> $GITHUB_ENV 
262-           else 
263-             echo "TAG_STABLE=false" >> $GITHUB_ENV 
264-           fi 
265- 
266286name : Update stable tag to latest version 
267287        run : | 
268288          git tag -f stable ${{ github.ref_name }} 
0 commit comments