콘텐츠로 이동
Oleaflyv0.4.7

버전 태그에서 완전한 초안을 빌드하고, 모든 플랫폼 산출물을 검토한 다음, 보호된 릴리스 워크플로로 게시합니다.

Oleafly 릴리스는 의도적으로 두 단계로 나뉩니다. 버전 태그가 초안을 빌드하고 검증합니다. 그다음 메인테이너가 별도의 워크플로 실행으로 그 초안을 게시합니다.

main에 푸시하면 CI가 실행되지만 릴리스는 만들어지지 않습니다.

최신 main 브랜치에서 CI가 통과한 상태로 시작합니다.

터미널 창
git switch main
git pull --ff-only
./scripts/bump-version.sh 0.3.6
git commit -am "chore: release v0.3.6"
git push origin main
git tag v0.3.6
git push origin v0.3.6

태그가 .github/workflows/release.yml을 시작합니다. 이 워크플로는 다음 대상을 빌드합니다.

대상설치 프로그램
macOS Apple Silicon.dmg
Windows x64.msi와 -setup.exe
Linux x64.AppImage와 .deb
Linux ARM64.AppImage와 .deb

각 대상은 고정된 컴파일러 사이드카를 가져와 검증합니다. 이어서 워크플로가 업데이터 조각 네 개를 모두 하나의 latest.json으로 병합합니다. 필요한 설치 프로그램과 업데이터 항목이 모두 있어야 초안이 준비된 것으로 봅니다.

GitHub Releases 페이지 (새 탭에서 열림)에서 초안을 엽니다. 릴리스 노트, 설치 프로그램 이름, 체크섬, 서명, latest.json을 확인하세요. 일부만 갖춘 초안은 게시하지 마세요.

Actions → Release → Run workflow를 엽니다. 같은 태그를 입력하고 Publish the release를 선택합니다.

게시 실행은 빌드와 산출물 검사를 다시 수행합니다. 릴리스 후보를 사용해 Anthropic과 Google을 대상으로 하는 실서비스 계약 테스트도 실행합니다. 마지막 작업은 지원하는 모든 플랫폼과 완전한 업데이터 피드가 갖춰지지 않으면 게시를 거부합니다.

게시하면 설치된 앱에 latest.json이 보이게 됩니다. 되돌릴 수 없는 프로덕션 작업으로 취급하세요. 게시 실행이 실패하면 릴리스를 초안 상태로 두고, 원인을 고친 다음 다시 실행하세요.

Oleafly는 유의적 버전(semantic versioning)을 따릅니다.

  • 패치: 0.3.5에서 0.3.6처럼, 호환되는 수정에 올립니다.
  • 마이너: 0.3.5에서 0.4.0처럼, 호환되는 기능에 올립니다.
  • 메이저: 0.3.5에서 1.0.0처럼, 호환성이 깨지는 변경이나 첫 안정 릴리스에 올립니다.
  • 태그는 package.json, src-tauri/tauri.conf.json, src-tauri/Cargo.toml, src-tauri/Cargo.lock과 일치해야 합니다. 이 파일들을 따로 수정하지 말고 scripts/bump-version.sh를 사용하세요.
  • 릴리스 노트는 CHANGELOG.md에서 해당 버전의 섹션을 가져옵니다.
  • 이미 게시한 태그를 다시 쓰지 마세요. 초안이 실패했다면 브랜치를 고치고 새 버전을 만드세요. 게시하지 않은 태그를 교체할 분명한 이유가 있는 경우는 예외입니다.
  • macOS 서명과 공증은 Apple 릴리스 시크릿을 사용합니다. Windows Authenticode는 시크릿이 설정되어 있으면 Azure Artifact Signing을 사용합니다. 업데이터 서명은 별도의 Tauri 서명 키를 사용합니다.

업데이터 서명과 롤백 동작은 자동 업데이트를 참고하세요. 사용자 설치 방법은 다운로드 및 설치에 있습니다.

이미지 미리보기

AI 답변을 불러오지 못했습니다

다시 시도하거나 문서를 검색하세요.