Skip to content

빌드 및 배포 ​

네이티브 애플리케이션 ​

sh
go tool mygo doctor
go tool mygo build
go tool mygo build -skip-dmg
go tool mygo build -platform darwin/universal,windows/amd64,linux/amd64

출력은 build/에 저장됩니다. 로컬 macOS 빌드는 임시 서명을 사용하며 외부 배포에는 Developer ID, 서명 설정, 공증이 필요합니다. Windows 설치 프로그램에도 서명 정책이 필요합니다. Linux 데스크톱 실행에는 GTK 3가 필요합니다.

CI는 macOS에서 레이스 테스트, Go vet, MyGo vet를 실행하고 Windows/Linux를 교차 컴파일하며 macOS를 패키징합니다. 컴파일된 바이너리가 데스크톱 통합 검증을 의미하지는 않습니다.

기존 수동 Release 워크플로는 안정 버전을 받아 tools/version으로 internal/buildinfo/version.go와 mygo.json을 갱신하고 패키지를 빌드 및 검증한 뒤 릴리스 커밋과 태그를 만들고 GitHub release 산출물을 게시합니다. 저장소 쓰기 권한과 호환되는 브랜치 보호가 필요합니다.로드맵의 수용 기준을 충족하기 전에는 프로덕션 릴리스로 실행하지 마세요. 프로덕션 서명과 신뢰할 업데이트 피드/키는 아직 설정되지 않았습니다. 필요한 빌드 입력이 있으면 MyGo 매니페스트와 호환되는 서명 업데이트를 준비하며, 없으면 GitHub releases를 확인하고 수동 다운로드로 대체합니다.

문서 ​

문서 사이트 빌드 및 배포 워크플로가 제거되었습니다. 저장소는 사이트 빌드, 타입 검사, 게시를 위한 GitHub Actions 작업을 더 이상 제공하지 않습니다. 로컬 VitePress 개발, 타입 검사, 빌드는 계속 사용할 수 있습니다. 명령은 개발 가이드를 참고하세요. 빌드 출력은 docs/.vitepress/dist입니다.

기존 사이트 설정은 사이트맵 URL에 oss-browser.ntnyq.dev를 계속 사용하고 docs/public/CNAME을 빌드 출력에 복사합니다. 이 설정만으로 사이트가 배포되지는 않습니다. 게시하려면 호스팅과 배포 절차, 도메인, DNS, HTTPS를 별도로 설정해야 합니다.

업그레이드 검사 ​

MyGo를 변경한 뒤에는 Go 테스트, 레이스 검사, 두 vet, 스냅샷, 네이티브 검증 테스트를 실행하세요. 문서 의존성을 변경하면 잠금 파일을 다시 생성하고 타입 검사와 빌드를 실행하세요.

검증 인계(2026-10-14) ​

소유자가 OSS 계정, Windows/Linux 환경, 서명 설정을 추후 제공합니다. 모의 SDK 테스트나 교차 컴파일만으로 이 검사를 통과했다고 표시하지 마세요.

환경필요한 증거상태
폐기 가능한 OSS BucketAK/STS 및 인증 코드 범위/만료, Endpoint 모드, 페이지 처리, 공개/비공개 ACL, 메타데이터, 링크, 복사/이동/삭제계정 대기
폐기 가능한 OSS Bucket대용량 전송 중단, 재시작/재연결 복구, 원본 변경, CRC 실패, 버전 관리 사용/미사용 시 충돌계정 대기
macOS실제 대화상자, Keychain 저장 동의/읽기/삭제, Unicode 경로, 절전/네트워크 중단, 서명 설치arm64 네이티브 시작/캡처 스모크 테스트 통과. 나머지 통합과 프로덕션 서명은 대기
WindowsCredential Manager, 파일 교체, 예약 이름, 설치/제거, 배율, 대화상자환경 대기
LinuxGTK 대화상자, Secret Service 사용 불가/잠김/해제, 심볼릭 링크, 설치/제거환경 대기
배포Developer ID 및 공증, Windows 서명, 출처 증명/체크섬, 릴리스 산출물 및 HTTPS 문서서명 및 릴리스 설정 대기

CI에는 macOS 테스트 모음 외에도 Windows와 Linux 플랫폼에서 실행하는 테스트가 포함됩니다. 이 작업은 로컬에서 구성되었으며 원격 CI 실행이 통과했다는 증거는 아닙니다. 실제 데스크톱 검증은 별도로 필요합니다.

서명된 macOS 빌드는 MyGo의 macos.signingIdentity(또는 -sign)와 macos.notarize.keychainProfile을 사용합니다. Windows 서명은 windows.certificate 또는 설정된 서명 명령을 사용합니다. 인증서, 키체인 프로필, 암호는 저장소 밖에 보관하세요. Release 실행 전에 설정을 제공하고 테스트해야 합니다. 로컬 임시 서명은 개발 빌드일 뿐입니다.

현재 릴리스 후보의 범위와 제한은 시작하기에 설명되어 있습니다. RAM/STS, SMTP, QR, 심볼릭 링크, 아카이브 등 Design v2 장면 그룹은 구현되었습니다. 정확한 코드와 검증 증거는 장면 기록을 참고하세요. 실제 서비스 검증은 여전히 필요합니다.

서명 업데이트 설정 ​

컴파일 전에 mygo.json의 updates.publicKey와 updates.github를 설정하세요. 이 공개 값은 앱에 포함됩니다. 고정된 MyGo 업데이터 문서에 따라 MYGO_UPDATER_PRIVATE_KEY는 보호된 릴리스 비밀 설정으로만 제공하세요. 공개 키는 게시자가 관리하는 서명 키와 일치해야 합니다. 생성된 플랫폼별 매니페스트와 업데이트 아카이브를 릴리스 패키지와 함께 게시하세요. 폐기 가능한 설치에서 서명 검증, 다운로드 중단, 롤백/실패, 재시작 복구를 확인하기 전에는 피드를 게시하지 마세요. 현재 Release 워크플로는 이러한 입력과 산출물이 구성될 때까지 수동 패키지 흐름을 유지합니다.

자동 업데이트는 전체 아카이브를 소유자만 접근 가능한 임시 파일에 다운로드하고 서명된 SHA-256 요약을 검증합니다. 준비 알림 후에도 명시적 설치가 필요합니다. 설치 시 파일을 재검증하고 다시 다운로드하지 않습니다. 취소 또는 검증 실패로 패키지가 준비 완료 상태가 될 수 없습니다. 델타 아카이브는 사용하지 않습니다. macOS는 일치하는 앱 번들을 교체하고 실패 시 롤백합니다. Windows/Linux는 백업과 함께 아카이브 항목을 교체합니다. Windows는 이전 실행 파일이 동작하는 동안 백업을 유지할 수 있습니다. 각 대상 OS의 폐기 가능한 서명 설치에서 이 경로와 재시작을 검증하세요.

하나의 데스크톱 릴리스 진입점 ​

수동 GitHub Release 워크플로가 유일한 게시 진입점입니다. pnpm release는 GitHub CLI를 통해 입력 프롬프트를 엽니다. 명시적 호출은 다음과 같습니다.

sh
gh workflow run release.yml -f version=0.2.0

루트 package.json은 비공개 도구 패키지입니다. 0.0.0 버전은 데스크톱 릴리스와 무관하며 npm 버전을 올려도 앱이 게시되지 않습니다.

파일을 변경하지 않고 로컬에서 버전을 검사합니다.

sh
go run ./tools/version

태그, 커밋, 릴리스를 생성하지 않고 계획된 안정 버전을 동기화합니다.

sh
go run ./tools/version -set 0.2.0

워크플로는 패키징 전에 태그 고유성, 버전의 단조 증가, 기본 브랜치 선두가 바뀌지 않았음을 검사합니다. Go 버전과 MyGo 패키징 메타데이터가 다르면 CI와 릴리스 검증 모두 실패합니다.

OSS Browser를 독립적으로 재구축한 프로젝트입니다.