이번 포스팅에서는 코딩 컨벤션 체크에서부터, 단위 테스트, 코드 사이닝, iOS 앱 빌드, TestFlight에 앱을 배포한 것에 이르는 일련의 과정을 자동화하는 GitLab CI/CD 파이프라인을 구성하는 방법에 대해 알아보겠습니다.
“GitLab과 Fastlane으로 iOS 앱 빌드 및 배포 자동화하기” 시리즈의 지난 두 개의 포스팅에서 다루었던 macOS Runner와 Fastlane으로 구성했던 각 Lane을 활용하여 GitLab CI/CD 파이프라인을 구성하고 실행합니다.
이번 글에서 설명하는 내용을 이해하기 위해서는 AWS EC2 Mac 인스턴스에 GitLab Runner 설치하기와 iOS 앱 배포 자동화를 위한 Fastlane 설치 및 구성을 먼저 읽어 보는 것이 좋습니다.
macOS Runner 확인
GitLab CI/CD 파이프라인을 구성하고 실행하기 전에, 프로젝트에서 사용할 수 있는 하나 이상의 Runner가 등록되어 있는지 확인해야 합니다. GitLab에서 Runner는 CI/CD Job을 실행하는 에이전트입니다.
iOS 앱을 빌드하고 배포하기 위해서는 macOS Runner가 필요합니다.
macOS Runner에 Xcode도 설치되어 있어야 합니다.
아래와 같이 수행하면 프로 젝트에서 사용할 수 있는 macOS Runner가 있는지 확인할 수 있습니다.
- GitLab 프로젝트의 왼쪽 사이드 바에서 Settings > CI/CD 선택
- Runners 섹션에서 Expand 버튼 클릭
- Specific runners, Group runners 또는 Shared runners 영역의 사용 가능한 러너 목록에 macOS Runner가 있는지 확인
아래 이미지처럼 Runner 번호 옆에 녹색 원 아이콘이 있으면 사용 가능 상태이고, Runner를 등록할 때 지정한 태그 ios
또는 monterey
를 포함하면 macOS Runner입니다.

사용 가능한 macOS Runner가 없으면, AWS EC2 Mac 인스턴스에 GitLab Runner 설치하기를 참고하여 macOS Runner를 설치하고 등록합니다.
참고로 GitLab에는 액세스 가능한 범위에 따라 세 가지 유형의 Runner가 있으며, 이 중에 하나 이상의 사용 가능한 macOS Runner가 있으면 됩니다.
- 공유 러너(Shared runners)는 GitLab 인스턴스의 모든 그룹 및 프로젝트에서 사용할 수 있습니다. (Admin Area의 Overview > Runners)
- 그룹 러너(Group runners)는 그룹의 모든 프로젝트와 하위 그룹에서 사용할 수 있습니다. (그룹의 Settings > CI/CD > Runners 섹션)
- 특정 러너(Specific runners)는 특정 프로젝트와 연결됩니다. 일반적으로 특정 러너는 한 번에 하나의 프로젝트에 사용됩니다. (프로젝트의 Settings > CI/CD > Runners 섹션)