Skip to content

Commit ae8d3a6

Browse files
Workflow: dedupe platforms in release notes generation and use script-generated RELEASE_NOTES.md when present
1 parent 7542e08 commit ae8d3a6

File tree

1 file changed

+30
-3
lines changed

1 file changed

+30
-3
lines changed

.github/workflows/update.yml

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,13 @@ jobs:
6969
if: steps.git-check.outputs.changes == 'true'
7070
run: |
7171
echo "Generating release notes for v${{ steps.latest.outputs.version }}"
72+
if [ -f RELEASE_NOTES.md ]; then
73+
echo "Using RELEASE_NOTES.md generated by update script"
74+
echo "path=RELEASE_NOTES.md" >> $GITHUB_OUTPUT
75+
exit 0
76+
fi
77+
78+
# Fallback: generate notes here with Python and canonicalize platform keys to avoid duplicates
7279
cat > generate_notes.py << 'EOF'
7380
import json
7481
import sys
@@ -87,9 +94,29 @@ jobs:
8794
print()
8895
print("| Platform | Link | Size | SHA256 |")
8996
print("| --- | --- | --- | --- |")
90-
91-
platforms = latest.get('platforms', {})
92-
details = latest.get('platformDetails', {})
97+
98+
# Canonicalize and dedupe platform keys (collapse aliases)
99+
alias_map = {
100+
'win32-x64': 'win32-x64-system',
101+
'win32-arm64': 'win32-arm64-system',
102+
}
103+
104+
def canon(key: str) -> str:
105+
return alias_map.get(key, key)
106+
107+
raw_platforms = latest.get('platforms', {})
108+
platforms = {}
109+
for k, v in raw_platforms.items():
110+
ck = canon(k)
111+
if ck not in platforms or k == ck:
112+
platforms[ck] = v
113+
114+
raw_details = latest.get('platformDetails', {})
115+
details = {}
116+
for k, v in raw_details.items():
117+
ck = canon(k)
118+
if ck not in details or k == ck:
119+
details[ck] = v
93120
94121
# Define display names
95122
display_names = {

0 commit comments

Comments
 (0)