2020 contents : read
2121 id-token : write # for creating OIDC tokens for signing.
2222 packages : write # used to push images to `ghcr.io` if used.
23- if : github.repository == 'argoproj/argo-cd' || (github.repository_owner != 'argoproj' && vars.ENABLE_FORK_RELEASES == 'true' && startsWith(github.ref, 'refs/tags/') && vars.IMAGE_NAMESPACE && vars.IMAGE_NAMESPACE != 'argoproj')
23+ if : github.repository == 'argoproj/argo-cd' || (github.repository_owner != 'argoproj' && needs.setup-variables.outputs.enable_fork_releases == 'true' && startsWith(github.ref, 'refs/tags/') && needs.setup-variables.outputs.image_namespace != 'argoproj')
2424 uses : ./.github/workflows/image-reuse.yaml
2525 with :
2626 quay_image_name : ${{ needs.setup-variables.outputs.quay_image_name }}
@@ -35,11 +35,12 @@ jobs:
3535
3636 setup-variables :
3737 name : Setup Release Variables
38- if : github.repository == 'argoproj/argo-cd' || (github.repository_owner != 'argoproj' && vars.ENABLE_FORK_RELEASES && vars.ENABLE_FORK_RELEASES == 'true' && startsWith(github.ref, 'refs/tags/') && vars.IMAGE_NAMESPACE && vars.IMAGE_NAMESPACE != 'argoproj')
38+ if : github.repository == 'argoproj/argo-cd' || (github.repository_owner != 'argoproj' && vars.ENABLE_FORK_RELEASES == 'true' && startsWith(github.ref, 'refs/tags/') && vars.IMAGE_NAMESPACE && vars.IMAGE_NAMESPACE != 'argoproj')
3939 runs-on : ubuntu-22.04
4040 outputs :
4141 is_pre_release : ${{ steps.var.outputs.is_pre_release }}
4242 is_latest_release : ${{ steps.var.outputs.is_latest_release }}
43+ enable_fork_releases : ${{ steps.var.outputs.enable_fork_releases }}
4344 image_registry : ${{ steps.var.outputs.image_registry }}
4445 image_namespace : ${{ steps.var.outputs.image_namespace }}
4546 image_repository : ${{ steps.var.outputs.image_repository }}
@@ -75,11 +76,14 @@ jobs:
7576 echo "is_pre_release=$PRE_RELEASE" >> $GITHUB_OUTPUT
7677 echo "is_latest_release=$IS_LATEST" >> $GITHUB_OUTPUT
7778
78- # Calculate image names with defaults (single source of truth)
79+ # Calculate configuration with defaults
80+ ENABLE_FORK_RELEASES="${{ vars.ENABLE_FORK_RELEASES || 'false' }}"
7981 IMAGE_REGISTRY="${{ vars.IMAGE_REGISTRY || 'quay.io' }}"
8082 IMAGE_NAMESPACE="${{ vars.IMAGE_NAMESPACE || 'argoproj' }}"
8183 IMAGE_REPOSITORY="${{ vars.IMAGE_REPOSITORY || 'argocd' }}"
8284
85+ echo "enable_fork_releases=$ENABLE_FORK_RELEASES" >> $GITHUB_OUTPUT
86+
8387 echo "image_registry=$IMAGE_REGISTRY" >> $GITHUB_OUTPUT
8488 echo "image_namespace=$IMAGE_NAMESPACE" >> $GITHUB_OUTPUT
8589 echo "image_repository=$IMAGE_REPOSITORY" >> $GITHUB_OUTPUT
@@ -110,7 +114,7 @@ jobs:
110114 - argocd-image-provenance
111115 permissions :
112116 contents : write # used for uploading assets
113- if : github.repository == 'argoproj/argo-cd' || (github.repository_owner != 'argoproj' && vars.ENABLE_FORK_RELEASES && vars.ENABLE_FORK_RELEASES == 'true' && startsWith(github.ref, 'refs/tags/') && vars.IMAGE_NAMESPACE && vars.IMAGE_NAMESPACE != 'argoproj')
117+ if : github.repository == 'argoproj/argo-cd' || (github.repository_owner != 'argoproj' && needs.setup-variables.outputs.enable_fork_releases == 'true' && startsWith(github.ref, 'refs/tags/') && needs.setup-variables.outputs.image_namespace != 'argoproj')
114118 runs-on : ubuntu-22.04
115119 env :
116120 GORELEASER_MAKE_LATEST : ${{ needs.setup-variables.outputs.is_latest_release }}
@@ -178,12 +182,12 @@ jobs:
178182 echo "hashes=$hashes" >> $GITHUB_OUTPUT
179183
180184 goreleaser-provenance :
181- needs : [goreleaser]
185+ needs : [goreleaser, setup-variables ]
182186 permissions :
183187 actions : read # for detecting the Github Actions environment
184188 id-token : write # Needed for provenance signing and ID
185189 contents : write # Needed for release uploads
186- if : github.repository == 'argoproj/argo-cd' || (github.repository_owner != 'argoproj' && vars.ENABLE_FORK_RELEASES && vars.ENABLE_FORK_RELEASES == 'true' && startsWith(github.ref, 'refs/tags/') && vars.IMAGE_NAMESPACE && vars.IMAGE_NAMESPACE != 'argoproj')
190+ if : github.repository == 'argoproj/argo-cd' || (github.repository_owner != 'argoproj' && needs.setup-variables.outputs.enable_fork_releases == 'true' && startsWith(github.ref, 'refs/tags/') && needs.setup-variables.outputs.image_namespace != 'argoproj')
187191 # Must be refernced by a tag. https://github.com/slsa-framework/slsa-github-generator/blob/main/internal/builders/container/README.md#referencing-the-slsa-generator
188192 uses : slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v2.1.0
189193 with :
@@ -196,11 +200,12 @@ jobs:
196200 needs :
197201 - argocd-image
198202 - goreleaser
203+ - setup-variables
199204 permissions :
200205 contents : write # Needed for release uploads
201206 outputs :
202207 hashes : ${{ steps.sbom-hash.outputs.hashes }}
203- if : github.repository == 'argoproj/argo-cd' || (github.repository_owner != 'argoproj' && vars.ENABLE_FORK_RELEASES && vars.ENABLE_FORK_RELEASES == 'true' && startsWith(github.ref, 'refs/tags/') && vars.IMAGE_NAMESPACE && vars.IMAGE_NAMESPACE != 'argoproj')
208+ if : github.repository == 'argoproj/argo-cd' || (github.repository_owner != 'argoproj' && needs.setup-variables.outputs.enable_fork_releases == 'true' && startsWith(github.ref, 'refs/tags/') && needs.setup-variables.outputs.image_namespace != 'argoproj')
204209 runs-on : ubuntu-22.04
205210 steps :
206211 - name : Checkout code
@@ -263,12 +268,12 @@ jobs:
263268 /tmp/sbom.tar.gz
264269
265270 sbom-provenance :
266- needs : [generate-sbom]
271+ needs : [generate-sbom, setup-variables ]
267272 permissions :
268273 actions : read # for detecting the Github Actions environment
269274 id-token : write # Needed for provenance signing and ID
270275 contents : write # Needed for release uploads
271- if : github.repository == 'argoproj/argo-cd' || (github.repository_owner != 'argoproj' && vars.ENABLE_FORK_RELEASES && vars.ENABLE_FORK_RELEASES == 'true' && startsWith(github.ref, 'refs/tags/') && vars.IMAGE_NAMESPACE && vars.IMAGE_NAMESPACE != 'argoproj')
276+ if : github.repository == 'argoproj/argo-cd' || (github.repository_owner != 'argoproj' && needs.setup-variables.outputs.enable_fork_releases == 'true' && startsWith(github.ref, 'refs/tags/') && needs.setup-variables.outputs.image_namespace != 'argoproj')
272277 # Must be referenced by a tag. https://github.com/slsa-framework/slsa-github-generator/blob/main/internal/builders/container/README.md#referencing-the-slsa-generator
273278 uses : slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v2.1.0
274279 with :
@@ -285,7 +290,7 @@ jobs:
285290 permissions :
286291 contents : write # Needed to push commit to update stable tag
287292 pull-requests : write # Needed to create PR for VERSION update.
288- if : github.repository == 'argoproj/argo-cd' || (github.repository_owner != 'argoproj' && vars.ENABLE_FORK_RELEASES && vars.ENABLE_FORK_RELEASES == 'true' && startsWith(github.ref, 'refs/tags/') && vars.IMAGE_NAMESPACE && vars.IMAGE_NAMESPACE != 'argoproj')
293+ if : github.repository == 'argoproj/argo-cd' || (github.repository_owner != 'argoproj' && needs.setup-variables.outputs.enable_fork_releases == 'true' && startsWith(github.ref, 'refs/tags/') && needs.setup-variables.outputs.image_namespace != 'argoproj')
289294 runs-on : ubuntu-22.04
290295 env :
291296 TAG_STABLE : ${{ needs.setup-variables.outputs.is_latest_release }}
0 commit comments