- macOS용 사용 가능한 머신 유형
- 지원되는 macOS 이미지
- macOS용 이미지 업데이트 정책
.gitlab-ci.yml
예시 파일- fastlane을 사용하여 iOS 프로젝트에 코드 서명하기
- Homebrew 최적화
- Cocoapods 최적화
- 알려진 문제 및 사용 제한 사항
macOS에서의 SaaS 러너
macOS에서의 SaaS 러너는 오픈 소스 프로그램 및 프리미엄 및 얼티밋 요금제 고객을 위해 베타에 있습니다.
macOS에서의 SaaS 러너는 GitLab SaaS CI/CD와 통합된 온디맨드 macOS 빌드 환경을 제공합니다. Apple 생태계(macOS, iOS, watchOS, tvOS)용 앱을 빌드, 테스트 및 배포하기 위해 이 러너를 사용할 수 있습니다. GitLab 단일 DevOps 플랫폼의 모든 기능을 활용할 수 있으며 빌드 환경을 관리하거나 운영할 필요가 없습니다. Mobile DevOps 솔루션에서는 iOS용 모바일 애플리케이션을 빌드하고 배포하는 데 필요한 기능, 문서 및 안내를 제공합니다.
계속해서 macOS에서의 SaaS 러너를 일반적으로 사용 가능하도록 반복하고 있습니다. 이 목표를 향해 진행 중인 작업은 관련 에픽에서 확인할 수 있습니다.
macOS용 사용 가능한 머신 유형
GitLab SaaS는 Apple 실리콘(M1) 칩을 사용하는 macOS 빌드 머신을 제공합니다. x86-64 타깃용으로 빌드하기 위해 Intel x86-64 빌드 환경을 모방하는 Rosetta 2를 사용할 수 있습니다.
러너 태그 | vCPU | 메모리 | 스토리지 |
---|---|---|---|
saas-macos-medium-m1
| 4 | 8 GB | 25 GB |
지원되는 macOS 이미지
Linux에서의 SaaS 러너와 달리 GitLab SaaS는 macOS용 VM 이미지 세트를 제공합니다.
다음 이미지 중 하나에서 빌드를 실행할 수 있으며, 이는 .gitlab-ci.yml
파일에서 지정합니다. 각 이미지는 특정 버전의 macOS 및 Xcode에서 실행됩니다.
VM 이미지 | 상태 | |
---|---|---|
macos-12-xcode-14
| Deprecated
| (GitLab 16.10에서 제거 예정) |
macos-13-xcode-14
| GA
| 선행 설치된 소프트웨어 |
macos-14-xcode-15
| GA
| 선행 설치된 소프트웨어 |
이미지가 지정되지 않으면 macOS 러너는 macos-13-xcode-14
를 사용합니다.
macOS용 이미지 업데이트 정책
이미지 및 설치된 구성 요소는 GitLab 릴리즈마다 업데이트되어 미리 설치된 소프트웨어를 최신 상태로 유지합니다. 보통 GitLab은 여러 버전의 미리 설치된 소프트웨어를 지원합니다. 자세한 정보는 미리 설치된 소프트웨어의 전체 목록를 참조하십시오.
macOS 및 Xcode의 주요 및 부 버전 릴리스는 Apple의 릴리스 후 2주 이내에 제공됩니다.
새로운 주요 버전 릴리스 이미지는 처음에 베타로 제공되며, 첫 번째 부 버전 릴리스가 출시되면 일반적으로 사용 가능(GA) 상태가 됩니다. GA 이미지는 동시에 2개까지 지원되므로 가장 오래된 이미지는 폐기 처리되며 지원되는 이미지 라이프사이클에 따라 3개월 후에 제거됩니다.
.gitlab-ci.yml
예시 파일
다음 샘플 .gitlab-ci.yml
파일은 macOS의 SaaS 러너를 사용하기 위한 방법을 보여줍니다:
.macos_saas_runners:
tags:
- saas-macos-medium-m1
image: macos-14-xcode-15
before_script:
- echo "${GITLAB_USER_NAME}에 의해 시작됨"
build:
extends:
- .macos_saas_runners
stage: build
script:
- "빌드 작업에서 스크립트 실행 중"
test:
extends:
- .macos_saas_runners
stage: test
script:
- "테스트 작업에서 스크립트 실행 중"
fastlane을 사용하여 iOS 프로젝트에 코드 서명하기
GitLab을 Apple 서비스와 통합하거나 기기에 설치하거나 Apple 앱 스토어에 배포하기 전에 응용 프로그램에 코드 서명을 해야 합니다.
각 macOS VM 이미지에는 fastlane이 포함되어 있어, 모바일 앱 배포를 간소화하는 오픈 소스 솔루션입니다.
애플리케이션에 대한 코드 서명 설정 방법에 대한 정보는 Mobile DevOps 문서의 지침을 참조하십시오.
관련 주제:
Homebrew 최적화
기본적으로 Homebrew는 작업을 시작할 때 업데이트를 확인합니다. Homebrew는 GitLab macOS 이미지 릴리스 주기보다 더 빈번할 수 있습니다. 이러한 릴리스 주기의 차이로 인해 brew
를 호출하는 단계가 Homebrew가 업데이트를 수행하는 동안 추가 시간이 소요될 수 있습니다.
의도하지 않은 Homebrew 업데이트로 인한 빌드 시간을 줄이려면 .gitlab-ci.yml
에 HOMEBREW_NO_AUTO_UPDATE
변수를 설정하세요:
variables:
HOMEBREW_NO_AUTO_UPDATE: 1
Cocoapods 최적화
프로젝트에서 Cocoapods를 사용하는 경우 CI 성능을 향상시키기 위해 다음 최적화를 고려해야 합니다.
Cocoapods CDN
전체 프로젝트 저장소를 복제하는 대신 콘텐츠 전달 네트워크(CDN)를 통해 패키지를 다운로드할 수 있습니다. CDN 액세스는 Cocoapods 1.8 이상에서 사용할 수 있으며 모든 GitLab SaaS 러너에서 macOS를 지원합니다.
CDN 액세스를 활성화하려면 Podfile이 다음과 같이 시작하는지 확인하세요:
source 'https://cdn.cocoapods.org/'
GitLab 캐싱 사용
GitLab에서 Cocoapods 패키지 캐싱을 사용하여 팟이 변경될 때에만 pod install
을 실행하여 빌드 성능을 향상시킬 수 있습니다.
프로젝트에 캐싱을 구성하려면:
-
.gitlab-ci.yml
파일에cache
구성을 추가하세요:cache: key: files: - Podfile.lock paths: - Pods
- 프로젝트에
cocoapods-check
플러그인을 추가하세요. -
pod install
을 호출하기 전에 설치된 종속성을 확인하는 작업 스크립트를 업데이트하세요:bundle exec pod check || bundle exec pod install
소스 제어에 팟 포함
또한 소스 제어에 팟 디렉토리를 포함할 수 있습니다. 이렇게 하면 CI 작업의 일부로서 팟을 설치할 필요가 없어지지만 프로젝트 저장소의 전체 크기를 증가시킵니다.
알려진 문제 및 사용 제한 사항
- VM 이미지에 작업에 필요한 특정 소프트웨어 버전이 포함되어 있지 않으면 해당 소프트웨어를 가져와 설치해야 합니다. 이로 인해 작업 실행 시간이 증가합니다.
- 사용자
gitlab
의 키체인은 공개적으로 사용할 수 없습니다. 대신 키체인을 직접 만들어야 합니다.