Skip to content

Commit a2819b5

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 e3bda05 commit a2819b5

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
@@ -5,7 +5,7 @@ env:
55
# See: https://github.com/actions/setup-node/#readme
66
NODE_VERSION: 16.x
77
CONFIGURATIONS_FOLDER: .github/label-configuration-files
8-
CONFIGURATIONS_ARTIFACT: label-configuration-files
8+
CONFIGURATIONS_ARTIFACT_PREFIX: label-configuration-file-
99

1010
# See: https://docs.github.com/actions/using-workflows/events-that-trigger-workflows
1111
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)