@@ -113,76 +113,61 @@ jobs:
113113 id : version
114114 run : echo "VERSION=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
115115
116- - name : Download release signatures
116+ - name : Download and inspect release signatures
117117 env :
118118 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
119119 run : |
120120 VERSION="${{ steps.version.outputs.VERSION }}"
121- echo "Downloading signatures for version v${VERSION}"
121+ echo "=== Release assets for v${VERSION} ==="
122+ gh release view "v${VERSION}" --json assets --jq '.assets[].name' || echo "Could not list assets"
122123
123- # Create signatures directory
124124 mkdir -p ./signatures
125125
126- # Download from draft release (add || true to not fail if no sigs found)
127- gh release download "v${VERSION}" --pattern "*.sig" --dir ./signatures || {
128- echo "Warning: Could not download signature files. They may not exist yet. "
129- echo "This is expected if TAURI_SIGNING_PRIVATE_KEY is not configured."
130- }
126+ # Download all .sig files
127+ echo ""
128+ echo "=== Downloading .sig files === "
129+ gh release download "v${VERSION}" --pattern "*.sig" --dir ./signatures 2>&1 || \
130+ echo "Warning: gh release download failed or no .sig files found"
131131
132- echo "Downloaded signature files:"
133- ls -la ./signatures/ || echo "No signatures directory or files found"
132+ echo ""
133+ echo "=== Downloaded signature files ==="
134+ ls -la ./signatures/ 2>/dev/null || echo "No files downloaded"
134135
135136 - name : Update latest.json
137+ env :
138+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
136139 run : |
137140 VERSION="${{ steps.version.outputs.VERSION }}"
138141 PUB_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
139142
140- # Read signatures with better error handling
141143 WIN_SIG=""
142144 LINUX_SIG=""
143145 MACOS_X64_SIG=""
144146 MACOS_ARM_SIG=""
145147
146- # Windows signature
147- WIN_SIG_FILE=$(find ./signatures -name "*x64_en-US.msi.zip.sig" -o -name "*x64-setup.exe.sig" | head -n 1)
148- if [ -n "$WIN_SIG_FILE" ] && [ -f "$WIN_SIG_FILE" ]; then
149- WIN_SIG=$(cat "$WIN_SIG_FILE")
150- echo "Found Windows signature: $WIN_SIG_FILE"
151- else
152- echo "Warning: Windows signature not found"
153- fi
154-
155- # Linux signature
156- LINUX_SIG_FILE=$(find ./signatures -name "*amd64.AppImage.tar.gz.sig" -o -name "*.AppImage.tar.gz.sig" | head -n 1)
157- if [ -n "$LINUX_SIG_FILE" ] && [ -f "$LINUX_SIG_FILE" ]; then
158- LINUX_SIG=$(cat "$LINUX_SIG_FILE")
159- echo "Found Linux signature: $LINUX_SIG_FILE"
160- else
161- echo "Warning: Linux signature not found"
162- fi
148+ # Classify each downloaded .sig file by its name.
149+ # Order matters: aarch64 before x64, amd64 before x64, .app.tar.gz before plain x64.
150+ for f in ./signatures/*.sig; do
151+ [ -f "$f" ] || continue
152+ name=$(basename "$f")
153+ echo "Classifying: $name"
154+ case "$name" in
155+ *aarch64*) MACOS_ARM_SIG=$(cat "$f"); echo " → macOS ARM" ;;
156+ *amd64*) LINUX_SIG=$(cat "$f"); echo " → Linux x64" ;;
157+ *x64.app.tar.gz.sig) MACOS_X64_SIG=$(cat "$f"); echo " → macOS x64" ;;
158+ *x64*) WIN_SIG=$(cat "$f"); echo " → Windows x64" ;;
159+ *) echo " → unrecognised, skipping" ;;
160+ esac
161+ done
163162
164- # macOS x64 signature
165- MACOS_X64_SIG_FILE=$(find ./signatures -name "*x64.app.tar.gz.sig" | head -n 1)
166- if [ -n "$MACOS_X64_SIG_FILE" ] && [ -f "$MACOS_X64_SIG_FILE" ]; then
167- MACOS_X64_SIG=$(cat "$MACOS_X64_SIG_FILE")
168- echo "Found macOS x64 signature: $MACOS_X64_SIG_FILE"
169- else
170- echo "Warning: macOS x64 signature not found"
171- fi
172-
173- # macOS ARM signature
174- MACOS_ARM_SIG_FILE=$(find ./signatures -name "*aarch64.app.tar.gz.sig" | head -n 1)
175- if [ -n "$MACOS_ARM_SIG_FILE" ] && [ -f "$MACOS_ARM_SIG_FILE" ]; then
176- MACOS_ARM_SIG=$(cat "$MACOS_ARM_SIG_FILE")
177- echo "Found macOS ARM signature: $MACOS_ARM_SIG_FILE"
178- else
179- echo "Warning: macOS ARM signature not found"
180- fi
163+ echo ""
164+ echo "Windows sig present: $([ -n "$WIN_SIG" ] && echo yes || echo NO)"
165+ echo "Linux sig present: $([ -n "$LINUX_SIG" ] && echo yes || echo NO)"
166+ echo "macOS x64 sig present: $([ -n "$MACOS_X64_SIG" ] && echo yes || echo NO)"
167+ echo "macOS ARM sig present: $([ -n "$MACOS_ARM_SIG" ] && echo yes || echo NO)"
181168
182- # Create meta/autoupdate directory if it doesn't exist
183169 mkdir -p meta/autoupdate
184170
185- # Update latest.json
186171 cat > meta/autoupdate/latest.json << EOF
187172 {
188173 "version": "${VERSION}",
@@ -209,9 +194,18 @@ jobs:
209194 }
210195 EOF
211196
212- echo "Generated latest.json:"
197+ echo ""
198+ echo "=== Generated latest.json ==="
213199 cat meta/autoupdate/latest.json
214200
201+ - name : Commit latest.json to repo
202+ run : |
203+ git config user.name "github-actions[bot]"
204+ git config user.email "github-actions[bot]@users.noreply.github.com"
205+ git add meta/autoupdate/latest.json
206+ git diff --cached --quiet || git commit -m "chore: update latest.json for v${{ steps.version.outputs.VERSION }}"
207+ git push
208+
215209 - name : Upload latest.json to release
216210 env :
217211 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments