Skip to content

Commit 5f39eec

Browse files
committed
desktop publish: parallelize release asset uploads
1 parent eea93a9 commit 5f39eec

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

‎.github/workflows/publish-desktop.yml‎

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -287,14 +287,15 @@ jobs:
287287
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
288288
run: |
289289
set -euo pipefail
290-
while IFS= read -r file; do
291-
echo "Uploading: $file"
292-
gh release upload "$RELEASE_TAG" "$file" --repo "$GITHUB_REPOSITORY" --clobber
293-
done < <(find artifacts -type f \
290+
# Parallel uploads; xargs exits non-zero if any single upload fails,
291+
# which keeps the promote step below from running on a partial set.
292+
find artifacts -type f \
294293
\( -name "*.dmg" -o -name "*.zip" -o -name "*.exe" \
295294
-o -name "*.AppImage" -o -name "*.deb" -o -name "*.rpm" \
296295
-o -name "*.blockmap" \
297-
-o -name "latest*.yml" \))
296+
-o -name "latest*.yml" \) -print0 \
297+
| xargs -0 -n1 -P8 -I{} sh -c \
298+
'echo "Uploading: $1"; exec gh release upload "$RELEASE_TAG" "$1" --repo "$GITHUB_REPOSITORY" --clobber' _ {}
298299
299300
# Flip draft → published only after every desktop asset is uploaded —
300301
# this is the atomic point where the new tag becomes "latest".

0 commit comments

Comments
 (0)