Skip to content

attempt to manually notarize for the 6Th time #137

attempt to manually notarize for the 6Th time

attempt to manually notarize for the 6Th time #137

Workflow file for this run

name: Build
on:
push:
branches: [ master ]
tags:
- 'v*'
pull_request:
branches: [ master ]
workflow_dispatch:
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest-large, windows-latest, macos-latest]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18.x'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build React app
env:
CI: false
run: npm run react-build
# ---------------------------------
# macOS Build (Sign only, no auto-notarize)
# ---------------------------------
- name: Print environment for debugging
if: matrix.os == 'macos-latest'
run: printenv | sort
- name: Build & Sign Electron app (macOS)
if: matrix.os == 'macos-latest'
env:
# Provide ONLY the .p12 certificate for code signing.
CSC_LINK: ${{ secrets.MACOS_CERTIFICATE }}
CSC_KEY_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
# Remove or omit the Apple API key vars from electron-builder,
# so it doesn't attempt notarization internally.
DEBUG: electron-builder
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Remove any "notarize" block from package.json or set "notarize": false
# to ensure electron-builder won't attempt notarization automatically.
npm run electron-build
- name: Setup notarization credentials
if: matrix.os == 'macos-latest'
run: |
echo ${{ secrets.GODOT_MACOS_NOTARIZATION_API_KEY }} | base64 --decode > notarization_api_key.p8
- name: Submit app for notarization
if: matrix.os == 'macos-latest'
env:
GODOT_MACOS_NOTARIZATION_API_KEY_ID: ${{ secrets.GODOT_MACOS_NOTARIZATION_API_KEY_ID }}
GODOT_MACOS_NOTARIZATION_API_KEY: ./notarization_api_key.p8
GODOT_MACOS_NOTARIZATION_API_UUID: ${{ secrets.GODOT_MACOS_NOTARIZATION_API_UUID }}
run: |
# We'll assume your DMG name matches something like:
# dist/Drivechain-Launcher-<version>-x64.dmg
# If you produce multiple DMGs (x64, arm64), pick the correct one or do both.
DMG_FILE=$(ls dist/*-x64.dmg | head -n 1)
if [ -z "$DMG_FILE" ]; then
echo "No x64 DMG found to notarize!"
exit 1
fi
echo "Submitting $DMG_FILE for notarization..."
echo "Running notarytool submit..."
request_uuid=$(xcrun notarytool submit "$DMG_FILE" \
--key "$GODOT_MACOS_NOTARIZATION_API_KEY" \
--key-id "$GODOT_MACOS_NOTARIZATION_API_KEY_ID" \
--issuer "$GODOT_MACOS_NOTARIZATION_API_UUID" \
--output-format json \
| jq -r '.id')
echo "Notarization UUID: $request_uuid"
echo "Waiting for notarization to complete..."
xcrun notarytool wait "$request_uuid" \
--key "$GODOT_MACOS_NOTARIZATION_API_KEY" \
--key-id "$GODOT_MACOS_NOTARIZATION_API_KEY_ID" \
--issuer "$GODOT_MACOS_NOTARIZATION_API_UUID"
echo "Stapling notarization..."
xcrun stapler staple "$DMG_FILE"