Skip to content

Commit 30c2f79

Browse files
committed
Don't upload multiple times to same artifact in label sync workflow
The "Sync Labels" GitHub Actions workflow is configured to allow the use of multiple shared label configuration files. This is done by using a job matrix in the GitHub Actions workflow to download each of the files from the source repository in a parallel GitHub Actions workflow job. A GitHub Actions workflow artifact was used to transfer the generated files between sequential jobs in the workflow. The "actions/upload-artifact" and "actions/download-artifact" actions are used for this purpose. Previously, a single artifact was used for the transfer of all the shared label configuration files, with each of the parallel jobs uploading its own generated files to that artifact. However, support for uploading multiple times to a single artifact was dropped in version 4.0.0 of the "actions/upload-artifact" action. So it is now necessary to use a dedicated artifact for each of the builds. These can be downloaded in aggregate by using the artifact name globbing and merging features which were introduced in version 4.1.0 of the "actions/download-artifact" action.
1 parent 1a77c3e commit 30c2f79

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

.github/workflows/sync-labels-npm.yml

+7-6
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: Sync Labels
33

44
env:
55
CONFIGURATIONS_FOLDER: .github/label-configuration-files
6-
CONFIGURATIONS_ARTIFACT: label-configuration-files
6+
CONFIGURATIONS_ARTIFACT_PREFIX: label-configuration-file-
77

88
# See: https://docs.github.com/actions/using-workflows/events-that-trigger-workflows
99
on:
@@ -90,7 +90,7 @@ jobs:
9090
*.yaml
9191
*.yml
9292
if-no-files-found: error
93-
name: ${{ env.CONFIGURATIONS_ARTIFACT }}
93+
name: ${{ env.CONFIGURATIONS_ARTIFACT_PREFIX }}${{ matrix.filename }}
9494

9595
sync:
9696
needs: download
@@ -124,16 +124,17 @@ jobs:
124124
- name: Checkout repository
125125
uses: actions/checkout@v4
126126

127-
- name: Download configuration files artifact
127+
- name: Download configuration file artifacts
128128
uses: actions/download-artifact@v4
129129
with:
130-
name: ${{ env.CONFIGURATIONS_ARTIFACT }}
130+
merge-multiple: true
131+
pattern: ${{ env.CONFIGURATIONS_ARTIFACT_PREFIX }}*
131132
path: ${{ env.CONFIGURATIONS_FOLDER }}
132133

133-
- name: Remove unneeded artifact
134+
- name: Remove unneeded artifacts
134135
uses: geekyeggo/delete-artifact@v5
135136
with:
136-
name: ${{ env.CONFIGURATIONS_ARTIFACT }}
137+
name: ${{ env.CONFIGURATIONS_ARTIFACT_PREFIX }}*
137138

138139
- name: Setup Node.js
139140
uses: actions/setup-node@v4

0 commit comments

Comments
 (0)