@@ -100,11 +100,15 @@ jobs:
100100 contents : write
101101 id-token : write
102102 env :
103- CHART_RELEASER_CONFIG : " .github/config/chart-releaser.yaml"
103+ CHART_RELEASER_CONFIG_FILE : " .github/config/chart-releaser.yaml"
104104 CHART_DIR : " charts/camunda-platform-${{ matrix.chart.dirID }}"
105- CHART_VERSION : " ${{ matrix.chart.version }}"
106- CHART_PACKAGE_NAME : " camunda-platform-${{ matrix.chart.version }}"
107- CHART_TAG_NAME : " camunda-platform-${{ matrix.chart.appVersion }}-${{ matrix.chart.version }}"
105+ CHART_RELEASE_VERSION : " ${{ matrix.chart.version }}"
106+ CHART_RELEASE_TAG_NAME : " camunda-platform-${{ matrix.chart.appVersion }}-${{ matrix.chart.version }}"
107+ CHART_RELEASE_PACKAGE_FILE : " camunda-platform-${{ matrix.chart.version }}.tgz"
108+ CHART_RELEASE_COSIGN_BUNDLE_FILE : " camunda-platform-${{ matrix.chart.version }}-cosign-bundle.json"
109+ CHART_RELEASE_COSIGN_VERIFY_FILE : " camunda-platform-${{ matrix.chart.version }}-cosign-verify.sh"
110+ CHART_RELEASE_COSIGN_CERTIFICATE_IDENTITY : " https://github.com/${{ github.workflow_ref }}"
111+ CHART_RELEASE_COSIGN_CERTIFICATE_OIDC_ISSUER : " https://token.actions.githubusercontent.com"
108112 steps :
109113 # Init.
110114 - name : Checkout
@@ -165,65 +169,93 @@ jobs:
165169 # Using the chart-releaser CLI provides more flexibility and control over the release process.
166170 - name : Run Chart Releaser - Packaging
167171 run : |
168- helm-cr package ${{ env.CHART_DIR }} --config ${{ env.CHART_RELEASER_CONFIG }}
172+ helm-cr package ${{ env.CHART_DIR }} --config ${{ env.CHART_RELEASER_CONFIG_FILE }}
169173 # Only keep the chart in the release process to avoid releasing untargeted charts.
170174 - name : Clean up packages
171175 run : |
172176 ls -lsa .cr-release-packages/*
173177 find .cr-release-packages/* \
174- -not -name "camunda-platform- ${{ env.CHART_VERSION }}.tgz " \
178+ -not -name "${{ env.CHART_RELEASE_PACKAGE_FILE }}" \
175179 -delete
176180 - name : Run Chart Releaser - Tagging/Uploading
177181 env :
178182 CR_TOKEN : ' ${{ secrets.GITHUB_TOKEN }}'
179183 run : |
180- helm-cr upload --config ${{ env.CHART_RELEASER_CONFIG }} \
184+ helm-cr upload --config ${{ env.CHART_RELEASER_CONFIG_FILE }} \
181185 --push \
182186 --owner "${{ github.repository_owner }}" \
183187 --git-repo "$(basename ${{ github.repository }})" \
184- --release-name-template "${{ env.CHART_TAG_NAME }}"
188+ --release-name-template "${{ env.CHART_RELEASE_TAG_NAME }}"
185189 - name : Run Chart Releaser - Indexing
186190 env :
187191 CR_TOKEN : ' ${{ secrets.GITHUB_TOKEN }}'
188192 run : |
189- helm-cr index --config ${{ env.CHART_RELEASER_CONFIG }} \
193+ helm-cr index --config ${{ env.CHART_RELEASER_CONFIG_FILE }} \
190194 --push \
191195 --owner "${{ github.repository_owner }}" \
192196 --git-repo "$(basename ${{ github.repository }})" \
193- --release-name-template "${{ env.CHART_TAG_NAME }}"
197+ --release-name-template "${{ env.CHART_RELEASE_TAG_NAME }}"
194198 - name : Set GitHub release type
195199 if : ${{ matrix.chart.prerelease }}
196200 env :
197201 GH_TOKEN : ' ${{ secrets.GITHUB_TOKEN }}'
198202 run : |
199- gh release edit "${{ env.CHART_TAG_NAME }}" \
203+ gh release edit "${{ env.CHART_RELEASE_TAG_NAME }}" \
200204 --repo "${GITHUB_REPOSITORY}" \
201205 --prerelease
202206
203207 # Sign and upload the signature.
204208 - name : Sign Helm chart with Cosign
209+ working-directory : .cr-release-packages
205210 run : |
206- cosign sign-blob -y .cr-release-packages/${{ env.CHART_PACKAGE_NAME }}.tgz \
207- --bundle "${{ env.CHART_PACKAGE_NAME }}.cosign.bundle"
211+ cosign sign-blob -y ${{ env.CHART_RELEASE_PACKAGE_FILE }} \
212+ --bundle "${{ env.CHART_RELEASE_COSIGN_BUNDLE_FILE }}"
213+ - name : Get Helm chart Cosign Rekor log index
214+ working-directory : .cr-release-packages
215+ run : |
216+ rekor_log_index="$(cat ${{ env.CHART_RELEASE_COSIGN_BUNDLE_FILE }} | jq '.rekorBundle.Payload.logIndex')"
217+ echo "CHART_RELEASE_COSIGN_REKOR_LOG_INDEX=${rekor_log_index}" >> $GITHUB_ENV
218+ - name : Create the script to verify signed Helm chart with Cosign
219+ working-directory : .cr-release-packages
220+ run : |
221+ cat << EOF > ${{ env.CHART_RELEASE_NAME }}-cosign-verify.sh
222+ # Rekor.
223+ echo "Rekor record:"
224+ echo "https://search.sigstore.dev/?logIndex=${{ env.CHART_RELEASE_COSIGN_REKOR_LOG_INDEX }}"
225+
226+ # Cosign.
227+ cosign verify-blob ${{ env.CHART_RELEASE_PACKAGE_FILE }} \\
228+ --bundle "${{ env.CHART_RELEASE_COSIGN_BUNDLE_FILE }}" \\
229+ --certificate-identity "${{ env.CHART_RELEASE_COSIGN_CERTIFICATE_IDENTITY }}" \\
230+ --certificate-oidc-issuer "${{ env.CHART_RELEASE_COSIGN_CERTIFICATE_OIDC_ISSUER }}"
231+ EOF
208232 - name : Verify signed Helm chart with Cosign
233+ working-directory : .cr-release-packages
209234 run : |
210- cosign verify-blob .cr-release-packages/${{ env.CHART_PACKAGE_NAME }}.tgz \
211- --bundle "${{ env.CHART_PACKAGE_NAME }}.cosign.bundle" \
212- --certificate-identity "https://github.com/${GITHUB_WORKFLOW_REF}" \
213- --certificate-oidc-issuer "https://token.actions.githubusercontent.com"
214- - name : Upload Helm chart signature bundle
235+ bash ${{ env.CHART_RELEASE_COSIGN_VERIFY_FILE }}
236+ - name : Upload Helm chart Cosign bundle file
237+ working-directory : .cr-release-packages
238+ env :
239+ GH_TOKEN : ' ${{ secrets.GITHUB_TOKEN }}'
240+ run : |
241+ gh release upload "${{ env.CHART_RELEASE_TAG_NAME }}" \
242+ "${{ env.CHART_RELEASE_COSIGN_BUNDLE_FILE }}" \
243+ --repo "${GITHUB_REPOSITORY}"
244+ - name : Upload Helm chart Cosign verify file
245+ working-directory : .cr-release-packages
215246 env :
216247 GH_TOKEN : ' ${{ secrets.GITHUB_TOKEN }}'
217248 run : |
218- gh release upload "${{ env.CHART_TAG_NAME }}" \
219- "${{ env.CHART_PACKAGE_NAME }}.cosign.bundle " \
249+ gh release upload "${{ env.CHART_RELEASE_TAG_NAME }}" \
250+ "${{ env.CHART_RELEASE_COSIGN_VERIFY_FILE }}" \
220251 --repo "${GITHUB_REPOSITORY}"
221252 - name : Add release info to workflow summary
222253 run : |
223254 echo "ℹ️ Release Published ℹ️" >> $GITHUB_STEP_SUMMARY
224255 cat << EOF >> $GITHUB_STEP_SUMMARY
225- - GitHub: https://github.com/${GITHUB_REPOSITORY}/releases/tag/${{ env.CHART_TAG_NAME }}
226- - Artifact Hub: https://artifacthub.io/packages/helm/camunda/camunda-platform/${{ env.CHART_VERSION }}
256+ - GitHub: https://github.com/${GITHUB_REPOSITORY}/releases/tag/${{ env.CHART_RELEASE_TAG_NAME }}
257+ - Artifact Hub: https://artifacthub.io/packages/helm/camunda/camunda-platform/${{ env.CHART_RELEASE_VERSION }}
258+ - Rekor record: https://rekor.sigstore.dev/?logIndex=${{ env.CHART_RELEASE_COSIGN_REKOR_LOG_INDEX }}
227259 Note: Artifact Hub link needs some time till it's AH scraps the Helm repo index.
228260 EOF
229261
@@ -261,13 +293,6 @@ jobs:
261293 helm
262294 helm-ct
263295 yq
264- # - name: Simple smoke test
265- # uses: nick-fields/retry@7152eba30c6575329ac0576536151aca5a72780e # v3
266- # with:
267- # max_attempts: 3
268- # timeout_minutes: 5
269- # retry_wait_seconds: 10
270- # command: make release.verify-components-version
271296 - name : Label PRs with app and chart version
272297 env :
273298 GH_TOKEN : " ${{ secrets.GITHUB_TOKEN }}"
0 commit comments