배경
fastlane/Fastfile의 build_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가 항상 같은 고정 그룹을 사용한다.
완료 조건
제한
- GitHub Actions 밖에서 직접 실행하는 Fastlane에는 이 잠금이 적용되지 않음
- 실패한 build에서 발생할 수 있는 build number 공백은 허용
제외 범위
- App Store Connect build number 발급 방식 교체
- iOS source 또는 private config SHA 고정
- Firebase 배포와 App Store 공개 예약
배경
fastlane/Fastfile의build_for_store는 현재 marketing version의 최신 App Store Connect build number를 조회한 뒤 1을 더한다..github/workflows/testflight.yml과.github/workflows/appstore.yml이 동시에 실행되면 두 작업이 같은 최신 값을 읽고 같은 build number를 선택할 수 있다.작업 범위
concurrency.group적용cancel-in-progress: false를 사용해 먼저 실행 중인 배포를 취소하지 않고 다음 배포를 대기시킴branch별 그룹으로 나누면 같은 build number 공간의 충돌을 막지 못하므로 두 workflow가 항상 같은 고정 그룹을 사용한다.
완료 조건
concurrency.group을 사용함.제한
제외 범위