Skip to content

Commit bc376e5

Browse files
authored
chore: update build pipeline to add file clean (#1272)
1 parent d0f8ac9 commit bc376e5

1 file changed

Lines changed: 60 additions & 4 deletions

File tree

.github/workflows/build.yml

Lines changed: 60 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -277,16 +277,72 @@ jobs:
277277
fi
278278
279279
# Create GitHub Release
280+
- name: Prepare GitHub Release assets
281+
if: startsWith(github.ref, 'refs/tags/')
282+
shell: bash
283+
run: |
284+
# GitHub release assets must have unique filenames.
285+
# Both mac folders contain latest-mac.yml, so stage assets with
286+
# channel-specific manifest names for macOS and keep one compatibility file.
287+
rm -rf gh-release-assets
288+
mkdir -p gh-release-assets
289+
290+
copy_file() {
291+
local src_file="$1"
292+
local dst_name="$2"
293+
[ -f "$src_file" ] || return 0
294+
295+
if [ -e "gh-release-assets/$dst_name" ]; then
296+
echo "Duplicate release asset name detected: $dst_name"
297+
echo " existing: gh-release-assets/$dst_name"
298+
echo " incoming: $src_file"
299+
exit 1
300+
fi
301+
302+
cp -f "$src_file" "gh-release-assets/$dst_name"
303+
}
304+
305+
copy_assets() {
306+
local src_dir="$1"
307+
local skip_name="${2:-}"
308+
[ -d "$src_dir" ] || return 0
309+
310+
while IFS= read -r -d '' file; do
311+
local name
312+
name="$(basename "$file")"
313+
314+
if [ -n "$skip_name" ] && [ "$name" = "$skip_name" ]; then
315+
continue
316+
fi
317+
318+
copy_file "$file" "$name"
319+
done < <(find "$src_dir" -maxdepth 1 -type f -print0)
320+
}
321+
322+
# Stage all normal artifacts (exclude duplicate mac manifest names first).
323+
copy_assets "release/mac-arm64" "latest-mac.yml"
324+
copy_assets "release/mac-intel" "latest-mac.yml"
325+
copy_assets "release/win-x64"
326+
copy_assets "release/linux-x64"
327+
328+
# macOS updater channels configured in electron/main/update.ts:
329+
# arm64 -> latest-arm64-mac.yml, x64 -> latest-x64-mac.yml
330+
copy_file "release/mac-arm64/latest-mac.yml" "latest-arm64-mac.yml"
331+
copy_file "release/mac-intel/latest-mac.yml" "latest-x64-mac.yml"
332+
333+
# Compatibility manifest for clients still using default latest-mac.yml.
334+
copy_file "release/mac-intel/latest-mac.yml" "latest-mac.yml"
335+
336+
echo "Prepared GitHub release assets:"
337+
ls -1 gh-release-assets
338+
280339
- name: Create GitHub Release
281340
if: startsWith(github.ref, 'refs/tags/')
282341
uses: softprops/action-gh-release@v2
283342
with:
284343
token: ${{ secrets.GITHUB_TOKEN }}
285344
files: |
286-
release/mac-arm64/*
287-
release/mac-intel/*
288-
release/win-x64/*
289-
release/linux-x64/*
345+
gh-release-assets/*
290346
291347
# Extract version from tag (e.g., v0.0.84 -> 0.0.84)
292348
- name: Extract version

0 commit comments

Comments
 (0)