Skip to content

Commit 2a4704a

Browse files
committed
Use more efficient workflow artifact replacement approach
The "Release" workflow (Go, Task, Crosscompile) template uses a GitHub Workflow to automatically generate releases of a project. This is done for a range of host architectures, including macOS. The macOS builds are then put through a notarization process in a dedicated workflow job. The builds are transferred between jobs by GitHub Actions workflow artifacts. The "create-release-artifacts" job produces macOS workflow artifacts containing non-notarized builds, which must then be replaced after the builds are notarized by the "notarize-macos" job. Previously, the approach chosen to accomplish this replacement was to use the community created "geekyeggo/delete-artifact" action to delete each artifact after it had been downloaded by the "notarize-macos" job, then replacing it by uploading the notarized version using the "actions/upload-artifact" action. It turns out that the ability to overwrite workflows was recently added to the "actions/upload-artifact" action. This behavior is enabled by setting the action's `overwrite` input to `true`. By using this feature, the dependence on the "geekyeggo/delete-artifact" action can be avoided, making the workflow more simple, easier to maintain, and more secure.
1 parent 089a4b2 commit 2a4704a

File tree

1 file changed

+2
-6
lines changed

1 file changed

+2
-6
lines changed

workflow-templates/release-go-crosscompile-task.yml

+2-6
Original file line numberDiff line numberDiff line change
@@ -120,11 +120,6 @@ jobs:
120120
name: ${{ env.ARTIFACT_PREFIX }}${{ matrix.build.artifact-suffix }}
121121
path: ${{ env.DIST_DIR }}
122122

123-
- name: Remove non-notarized artifact
124-
uses: geekyeggo/delete-artifact@v5
125-
with:
126-
name: ${{ env.ARTIFACT_PREFIX }}${{ matrix.build.artifact-suffix }}
127-
128123
- name: Import Code-Signing Certificates
129124
env:
130125
KEYCHAIN: "sign.keychain"
@@ -192,11 +187,12 @@ jobs:
192187
-C "${{ env.BUILD_FOLDER }}/" "${{ env.PROJECT_NAME }}" \
193188
-C ../../ LICENSE.txt
194189
195-
- name: Upload notarized artifact
190+
- name: Replace artifact with notarized build
196191
uses: actions/upload-artifact@v4
197192
with:
198193
if-no-files-found: error
199194
name: ${{ env.ARTIFACT_PREFIX }}${{ matrix.build.artifact-suffix }}
195+
overwrite: true
200196
path: ${{ env.DIST_DIR }}/${{ env.PACKAGE_FILENAME }}
201197

202198
create-release:

0 commit comments

Comments
 (0)