이번 포스팅에서는 코딩 컨벤션 체크에서부터, 단위 테스트, 코드 사이닝, 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 섹션)