Skip to content

TestFlight와 App Store build number 계산을 직렬화한다 #789

Description

@opficdev

배경

fastlane/Fastfilebuild_for_store는 현재 marketing version의 최신 App Store Connect build number를 조회한 뒤 1을 더한다.

.github/workflows/testflight.yml.github/workflows/appstore.yml이 동시에 실행되면 두 작업이 같은 최신 값을 읽고 같은 build number를 선택할 수 있다.

작업 범위

  • TestFlight와 App Store workflow에 동일한 repository 단위 concurrency.group 적용
  • cancel-in-progress: false를 사용해 먼저 실행 중인 배포를 취소하지 않고 다음 배포를 대기시킴
  • build number 조회부터 build 및 선택된 업로드 단계가 끝날 때까지 두 workflow를 직렬화
  • workflow 파일에 두 배포가 build number 공간을 공유한다는 이유 기록

branch별 그룹으로 나누면 같은 build number 공간의 충돌을 막지 못하므로 두 workflow가 항상 같은 고정 그룹을 사용한다.

완료 조건

  • TestFlight와 App Store workflow가 같은 concurrency.group을 사용함.
  • 실행 중인 배포가 새 실행으로 취소되지 않음.
  • 두 workflow를 동시에 요청하면 하나가 대기 상태가 됨.
  • build number 조회와 증가 구간이 서로 겹치지 않음.
  • 기존 build-only/upload 선택 동작이 유지됨.

제한

  • GitHub Actions 밖에서 직접 실행하는 Fastlane에는 이 잠금이 적용되지 않음
  • 실패한 build에서 발생할 수 있는 build number 공백은 허용

제외 범위

  • App Store Connect build number 발급 방식 교체
  • iOS source 또는 private config SHA 고정
  • Firebase 배포와 App Store 공개 예약

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions