Skip to content

Commit 2c465d7

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 a03b2f5 commit 2c465d7

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:
@@ -87,7 +87,7 @@ jobs:
8787
*.yaml
8888
*.yml
8989
if-no-files-found: error
90-
name: ${{ env.CONFIGURATIONS_ARTIFACT }}
90+
name: ${{ env.CONFIGURATIONS_ARTIFACT_PREFIX }}${{ matrix.filename }}
9191

9292
sync:
9393
needs: download
@@ -118,16 +118,17 @@ jobs:
118118
- name: Checkout repository
119119
uses: actions/checkout@v4
120120

121-
- name: Download configuration files artifact
121+
- name: Download configuration file artifacts
122122
uses: actions/download-artifact@v4
123123
with:
124-
name: ${{ env.CONFIGURATIONS_ARTIFACT }}
124+
merge-multiple: true
125+
pattern: ${{ env.CONFIGURATIONS_ARTIFACT_PREFIX }}*
125126
path: ${{ env.CONFIGURATIONS_FOLDER }}
126127

127-
- name: Remove unneeded artifact
128+
- name: Remove unneeded artifacts
128129
uses: geekyeggo/delete-artifact@v5
129130
with:
130-
name: ${{ env.CONFIGURATIONS_ARTIFACT }}
131+
name: ${{ env.CONFIGURATIONS_ARTIFACT_PREFIX }}*
131132

132133
- name: Setup Node.js
133134
uses: actions/setup-node@v4

0 commit comments

Comments
 (0)