Skip to content

AI 리포트 v0.7.0: 랭킹 시스템 · App Store 지원 #5

AI 리포트 v0.7.0: 랭킹 시스템 · App Store 지원

AI 리포트 v0.7.0: 랭킹 시스템 · App Store 지원 #5

Workflow file for this run

name: Release
# v*.*.* 태그 push → 서명·공증된 .dmg 를 GitHub Release 에 자동 업로드.
# workflow_dispatch (수동) → Release 없이 공증된 dmg 를 artifact 로만 (검증용).
#
# 서명/공증은 CI 에서만 한다(로컬 키체인은 건드리지 않는다). 판다(token-panda)와
# 같은 Developer ID 인증서·Apple 계정을 GitHub secret 으로 재사용한다:
# MAC_CSC_LINK = developerID.p12 의 base64
# MAC_CSC_KEY_PASSWORD = 그 p12 의 비밀번호
# APPLE_ID = Apple 계정 이메일 (공증 제출용)
# APPLE_APP_SPECIFIC_PASSWORD = 앱 전용 암호 (appleid.apple.com 발급)
# APPLE_TEAM_ID = 9G9VP7X45U
# electron-builder 가 CSC_LINK 로 임시 키체인에 인증서를 넣어 Developer ID 서명을
# 하고, package.json 의 mac.notarize:true 가 Apple 공증 서버 제출 + dmg stapling
# 까지 자동 처리한다.
#
# Windows(.exe)는 공증 대상이 아니고, build 스크립트의 `cp` 가 windows runner 에서
# 동작하지 않아 이 워크플로우에서 제외한다. 기존처럼 로컬 `npm run dist:win`
# (mac 에서 크로스 빌드, 미서명)으로 만들어 수동 업로드한다.
on:
push:
tags:
- 'v*.*.*'
workflow_dispatch:
# softprops/action-gh-release 가 Release 생성·자산 업로드를 하려면 필요.
permissions:
contents: write
jobs:
build-mac:
runs-on: macos-latest
steps:
- uses: actions/checkout@v5
- name: Setup Node
uses: actions/setup-node@v5
with:
node-version: '20'
- name: Install deps
run: npm ci
- name: Build & notarize macOS dmg
env:
CSC_LINK: ${{ secrets.MAC_CSC_LINK }}
CSC_KEY_PASSWORD: ${{ secrets.MAC_CSC_KEY_PASSWORD }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
run: npm run dist:mac
- name: Upload to GitHub Release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v3
with:
tag_name: ${{ github.ref_name }}
name: ${{ github.ref_name }}
body: 'Auto-generated by GitHub Actions. 서명·공증된 macOS dmg.'
draft: false
prerelease: false
files: 'release/*.dmg'
- name: Upload artifact (workflow_dispatch only)
if: github.event_name == 'workflow_dispatch'
uses: actions/upload-artifact@v6
with:
name: ai-usage-checkup-macos-aarch64
path: 'release/*.dmg'
if-no-files-found: warn