Skip to content

Update FUNDING.yml to include custom sponsorship URL #31

Update FUNDING.yml to include custom sponsorship URL

Update FUNDING.yml to include custom sponsorship URL #31

Workflow file for this run

# ==============================================================================
# Apple Developer ID Code Signing & Notarization Setup
# ==============================================================================
#
# REQUIRED GITHUB SECRETS (add these in GitHub → Settings → Secrets → Actions):
# MACOS_CERTIFICATE_BASE64 - Base64-encoded .p12 certificate (export from Keychain)
# MACOS_CERTIFICATE_PASSWORD - Password used when exporting the .p12
# APPLE_API_ISSUER - App Store Connect API issuer UUID
# APPLE_API_KEY_ID - App Store Connect API key ID
# APPLE_API_KEY_P8_BASE64 - Base64-encoded .p8 API key file
# APPLE_DEVELOPER_ID - Full certificate name (see commands below)
#
# CERTIFICATE SETUP (local machine):
# 1. Open Keychain Access → My Certificates
# 2. Find your "Developer ID Application" certificate
# 3. security find-identity -v -p codesigning # lists all signing identities
# 4. Export the .p12: Right-click cert → Export → .p12 format
# 5. base64 -i certificate.p12 | pbcopy # paste into MACOS_CERTIFICATE_BASE64
#
# APPLE API KEY SETUP:
# 1. Go to appstoreconnect.apple.com → Users & Access → Integrations
# 2. Create new API key with "App Manager" role minimum
# 3. Note the Key ID and Issuer ID for the secrets
# 4. Download the .p8 file and base64 encode it for APPLE_API_KEY_P8_BASE64
#
# ==============================================================================
name: Desktop Build
on:
push:
branches: [main]
tags:
- "v*"
pull_request:
branches: [main]
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
with:
bun-version: "1.2.10"
- run: bun install
- run: bun run typecheck
- run: find . -path '*/dist/*' -name '*.test.js' -delete
- run: bun run test
build-desktop:
# needs: test
strategy:
fail-fast: false
matrix:
include:
- os: macos-latest
platform: darwin
- os: windows-2025
platform: win32
runs-on: ${{ matrix.os }}
if: github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
with:
bun-version: "1.2.10"
- run: bun install
- name: Import Apple Developer ID Certificate
if: matrix.platform == 'darwin'
uses: apple-actions/import-codesign-certs@v6
with:
p12-file-base64: ${{ secrets.MACOS_CERTIFICATE_BASE64 }}
p12-password: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
- name: Decode App Store Connect API Key
if: matrix.platform == 'darwin'
run: |
echo "${{ secrets.APPLE_API_KEY_P8_BASE64 }}" | base64 --decode > /tmp/api_key.p8
- run: bun run build:desktop
env:
ELECTROBUN_DEVELOPER_ID: ${{ secrets.APPLE_DEVELOPER_ID }}
ELECTROBUN_APPLEAPIISSUER: ${{ secrets.APPLE_API_ISSUER }}
ELECTROBUN_APPLEAPIKEY: ${{ secrets.APPLE_API_KEY_ID }}
ELECTROBUN_APPLEAPIKEYPATH: /tmp/api_key.p8
VITE_POSTHOG_KEY: ${{ secrets.VITE_POSTHOG_KEY }}
- name: Cleanup API key
if: matrix.platform == 'darwin'
run: rm -f /tmp/api_key.p8
- uses: actions/upload-artifact@v4
with:
name: calca-desktop-${{ matrix.platform }}
path: platforms/desktop/artifacts/
release:
needs: build-desktop
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v') && !failure() && !cancelled()
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
path: artifacts
pattern: calca-desktop-*
merge-multiple: true
- name: Create Release
uses: softprops/action-gh-release@v2
with:
files: |
artifacts/**/*.dmg
artifacts/**/*.zip
generate_release_notes: true