Skip to content

Latest commit

 

History

History
54 lines (40 loc) · 2.53 KB

File metadata and controls

54 lines (40 loc) · 2.53 KB

Study Builder 릴리스 운영 가이드

현재 제품 버전은 0.1.0이며 macOS arm64의 unsigned 내부 검증 릴리스만 지원합니다. 공개 배포 전에는 Developer ID 서명과 Apple notarization이 필수입니다.

릴리스 단계

  1. 작업 트리와 의도한 커밋을 확인합니다.
  2. prototype/에서 아래 검증을 모두 실행합니다.
  3. package:mac으로 DMG와 ZIP을 만듭니다.
  4. inspect:package와 패키지 Smoke Test를 통과시킵니다.
  5. 산출물의 SHA-256을 기록하고 이전 릴리스와 별도 경로에 보관합니다.
cd prototype
npm ci
npm run build:templates
npm run typecheck
npm run test
npm run test:sites
npm run test:e2e
npm run package:mac
npm run inspect:package
npm run test:packaged
shasum -a 256 release/*.dmg release/*.zip

release/는 Git에 커밋하지 않습니다. 버전은 package.jsonpackage-lock.json에서 함께 올리고, 같은 버전의 산출물을 덮어쓰지 않습니다.

채널과 버전 정책

  • 0.x: 내부 검증과 제한된 테스트 배포
  • 1.0.0: 서명·공증·설치 검증과 개인정보 안내를 마친 첫 공개 릴리스
  • patch: 호환되는 오류·보안 수정
  • minor: 하위 호환 기능 추가
  • major: 저장 형식, Provider 또는 사용자 흐름의 호환되지 않는 변경

자동 업데이트는 현재 구현하지 않습니다. 서명된 공개 릴리스와 HTTPS 업데이트 저장소, 무결성·롤백 정책을 함께 준비할 때 도입합니다.

서명과 공증 전환

현재 electron-builder.yml은 개발 검증을 위해 mac.identity: null을 사용하고, package script는 인증서 자동 검색을 끕니다. 공개 릴리스 전에는 다음 작업이 필요합니다.

  • Apple Developer 계정과 Developer ID Application 인증서 준비
  • CI 비밀 저장소에 서명·공증 자격 증명 등록
  • identity: nullCSC_IDENTITY_AUTO_DISCOVERY=false 제거
  • hardened runtime과 필요한 entitlement를 실제 패키지에서 검증
  • notarization과 stapling 성공 확인
  • 깨끗한 macOS 사용자 환경에서 DMG 설치·최초 실행 확인

자격 증명이 없는 상태에서 임의 서명값을 저장소에 넣거나 공증 완료를 주장하지 않습니다.

롤백

릴리스 후 치명적 문제가 발견되면 배포를 중단하고 직전 검증 버전과 checksum을 다시 제공합니다. 저장소 schema가 바뀌는 릴리스는 이전 앱이 새 데이터를 덮어쓰지 않도록 migration과 downgrade 정책을 먼저 추가해야 합니다.