mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-07-20 05:27:59 +08:00
fix(ci): only enable mac signing when certificate secret is set
GitHub injects unset secrets as empty strings, and electron-builder treats an empty CSC_LINK as a (broken) certificate path, aborting the mac build with "desktop not a file". Export the signing vars only when non-empty so unsigned builds fall back cleanly, matching local behavior. Windows builds already passed; guarded the same way for consistency. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
24
.github/workflows/release.yml
vendored
24
.github/workflows/release.yml
vendored
@@ -102,18 +102,32 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
# macOS signing/notarization (no-ops when the secrets are unset, so
|
# Signing secrets are passed through as-is; we only export them to the
|
||||||
# unsigned builds still succeed until certificates are provisioned).
|
# environment below when non-empty. An empty CSC_LINK would make
|
||||||
CSC_LINK: ${{ secrets.MAC_CSC_LINK }}
|
# electron-builder try to load a bogus certificate and fail, so unset
|
||||||
CSC_KEY_PASSWORD: ${{ secrets.MAC_CSC_KEY_PASSWORD }}
|
# is the correct state for unsigned builds.
|
||||||
|
MAC_CSC_LINK: ${{ secrets.MAC_CSC_LINK }}
|
||||||
|
MAC_CSC_KEY_PASSWORD: ${{ secrets.MAC_CSC_KEY_PASSWORD }}
|
||||||
APPLE_ID: ${{ secrets.APPLE_ID }}
|
APPLE_ID: ${{ secrets.APPLE_ID }}
|
||||||
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
|
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
|
||||||
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
|
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
|
||||||
# Windows signing (also a no-op when unset).
|
|
||||||
WIN_CSC_LINK: ${{ secrets.WIN_CSC_LINK }}
|
WIN_CSC_LINK: ${{ secrets.WIN_CSC_LINK }}
|
||||||
WIN_CSC_KEY_PASSWORD: ${{ secrets.WIN_CSC_KEY_PASSWORD }}
|
WIN_CSC_KEY_PASSWORD: ${{ secrets.WIN_CSC_KEY_PASSWORD }}
|
||||||
run: |
|
run: |
|
||||||
npm run build
|
npm run build
|
||||||
|
|
||||||
|
# Only export signing vars when provided. Empty strings are NOT the
|
||||||
|
# same as unset to electron-builder: an empty CSC_LINK is treated as
|
||||||
|
# a (broken) certificate path and aborts the build. Leaving them
|
||||||
|
# unset makes electron-builder fall back to an unsigned build.
|
||||||
|
if [ -n "$MAC_CSC_LINK" ]; then
|
||||||
|
export CSC_LINK="$MAC_CSC_LINK"
|
||||||
|
export CSC_KEY_PASSWORD="$MAC_CSC_KEY_PASSWORD"
|
||||||
|
fi
|
||||||
|
if [ -z "$WIN_CSC_LINK" ]; then
|
||||||
|
unset WIN_CSC_LINK WIN_CSC_KEY_PASSWORD
|
||||||
|
fi
|
||||||
|
|
||||||
# Publish to the GitHub Release on tag pushes; otherwise build only.
|
# Publish to the GitHub Release on tag pushes; otherwise build only.
|
||||||
if [ "${{ github.event_name }}" = "push" ]; then
|
if [ "${{ github.event_name }}" = "push" ]; then
|
||||||
PUBLISH=always
|
PUBLISH=always
|
||||||
|
|||||||
Reference in New Issue
Block a user