Skip to content

Commit f798a8a

Browse files
committed
fix(release): an empty CSC_LINK is a path, not an absence
The comment said `getCscLink treats "" as null`. 26.15.3 does not: it resolved the empty string against the project directory and died with "/Users/runner/work/estella/estella/desktop not a file", three attempts, after the keychain step had already imported the identity successfully. So the variable is declared on neither leg. macOS signs out of CSC_KEYCHAIN; Windows sees no certificate at all, which is what "empty" was reaching for — and what keeps an Apple identity out of app-update.yml's publisherName.
1 parent b99a112 commit f798a8a

1 file changed

Lines changed: 8 additions & 9 deletions

File tree

.github/workflows/release-desktop.yml

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -404,15 +404,14 @@ jobs:
404404
shell: bash
405405
env:
406406
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
407-
# Empty on BOTH legs. macOS signs out of the CSC_KEYCHAIN stood up above;
408-
# Windows must never see a certificate here — CSC_LINK is electron-builder's
409-
# PLATFORM-NEUTRAL variable, so the Windows leg would sign its NSIS
410-
# installer with the Apple Developer ID .p12, stamp that identity into
411-
# app-update.yml as `publisherName`, and electron-updater would then refuse
412-
# every update whose Authenticode status is not Valid. v0.36.0 shipped that
413-
# way. An empty value reads as absent (getCscLink treats "" as null).
414-
CSC_LINK: ''
415-
CSC_KEY_PASSWORD: ''
407+
# CSC_LINK is declared on NEITHER leg. Empty is not absent: 26.15.3
408+
# resolves "" as a path and dies with "<projectDir> not a file". macOS
409+
# signs out of the CSC_KEYCHAIN stood up above, and Windows must never
410+
# see a certificate here — CSC_LINK is electron-builder's PLATFORM-NEUTRAL
411+
# variable, so that leg would sign its NSIS installer with the Apple
412+
# Developer ID .p12, stamp the identity into app-update.yml as
413+
# `publisherName`, and electron-updater would refuse every update whose
414+
# Authenticode status is not Valid. v0.36.0 shipped exactly that way.
416415
# An app-specific password, NOT the Apple ID's own.
417416
APPLE_ID: ${{ matrix.platform == 'macos-latest' && secrets.APPLE_ID || '' }}
418417
APPLE_APP_SPECIFIC_PASSWORD: ${{ matrix.platform == 'macos-latest' && secrets.APPLE_APP_SPECIFIC_PASSWORD || '' }}

0 commit comments

Comments
 (0)