Xcode Cloud – 1. 설정

들어가며…

Xcode Cloud 는 CI(Continuous Integration)/CD(Continuous Deployment) 서비스로, WWDC21을 통해 클로즈 베타서비스로 모습을 드러냈습니다. Xcode13 부터 IDE 자체에 내장되어 있으며 설정하기도 쉽게 구성되어 많은 iOS 개발자들의 관심을 받았습니다.

필자도 너무 궁금해서 베타테스트를 신청하고 기다렸지만 끝내 승인이 되지 않더군요. 그 와중에 지인 분들 몇 분이 활성화 되었다고 소식을 알려오셨는데 너무 부러웠습니다. 근무 중 생각이 날 때마다 AppStore Connect 에 들어가서 확인해보고 메일도 확인해봤지만 결국 WWDC22 에서 전체 개발자에게 공개한다는 소식을 전하고서야 사용해보게 되었습니다.

첫 인상

애플답게 딱 필요한 부분만 쉽게 설정할 수 있도록 구성되어 있습니다. Xcode Cloud 이전에는 Jenkins, TeamCity 처럼 설정이 복잡하고 어려운 서비스를 사용하다가 그나마 설정이 쉽다는 Bitrise 로 정착했지만 비용이 만만찮기도 하고 설정이 그렇게 쉽다는 생각은 하지 않고 있었는데 Xcode Cloud 는 너무나 직관적으로 설정이 가능했습니다.

비용

비용은 2023.12 까지는 월 25시간 무료이며, 이후에는 월 15달러로 책정되었습니다. 그 외 옵션의 경우 올 여름부터 plan 을 시작한다고 하며 아래 표와 같다고 합니다. (비싸네요~)

Xcode Cloud Pricing

Workflow 설정하기

백문이 불여일견. 우선 한 번 해보죠. 우선 워크플로 이름을 지정을 하고.

General 탭

General 탭에서 타겟이 되는 SCM 경로와 프로젝트(혹은 워크스페이스) 지정을 해줍니다.

Workflow – General

Environment 탭

Environment 탭에서 Xcode version, macOS version 을 지정하고 clean 빌드를 할 것인지 체크합니다. 그리고 필요하다면 환경 변수를 입력해줍니다. 설정할 수 있는 Xcode 와 macOS 버전을 다양하게 제공해주고 있습니다. 너무 좋네요!!

Workflow – Environment

Start Conditions

환경 설정이 끝났다면 Start Condition을 지정해줍니다. 조건은 총 4가지를 제공해주고 있습니다. 그 중 아래 3가지는 git 의 상태 기준의 조건이며, 나머지 하나는 스케쥴을 지정하는 조건입니다.

  1. Branch Changes – 브랜치 변경 (pushed)
  2. Pull Request Changes – PR 등록 (pushed)
  3. Tag Changes – Tag 등록 (pushed)

상세 조건은 아래 이미지처럼 특정 문구로 시작하거나 정확히 일치하거나로 지정을 할 수 있습니다. PR 기준으로 본다면 시작 branch가 feature/ 로 시작하며, 목적지가 develop 으로 지정되면 워크플로를 시작하는 조건이 충족되겠죠.

그 외 특정 파일이나 폴더의 변경도 기준으로 잡을 수 있습니다.

마지막으로 옵션의 경우 동일 브랜치에서 빌드 중 새로운 빌드가 발생하면 현재 빌드를 멈출지 여부입니다.

Workflow – Start conditions

Actions

다음은 조건이 충족했을 때 어떤 행위(action)을 할 것인지 정할 차례입니다. 지정할 수 있는 행위는 총 4가지이며, 각각 빌드, 테스트, 분석, 아카이브입니다.

플랫폼(Platform)은 macOS, iOS, tvOS, watchOS 를 제공하고 있으며 스킴은 멀티 스킴의 경우 적절한 스킴으로 지정하시면 됩니다.

마지막으로 테스트를 위한 시뮬레이터와 시뮬레이터 iOS 버전을 여러 개 지정할 수 있습니다.

Workflow – Actions

Post-Actions

마지막으로 수행이 끝났을 때 작업을 지정할 수 있습니다. 특이하게도 Slack 을 연동이 가능합니다. Teams 등은 아직 연동이 안되나 봅니다. 또한 아카이브를 염두해둬서인지 TestFlight Testing 을 알릴 수도 있습니다.

슬랙을 연동하게 되면 웹페이지로 이동하게 되며 슬랙의 권한을 요청하는 화면이 나타나며, 슬랙 관리자에게 권한을 요청할 수 있도록 되어 있습니다. 권한이 허가가 되면 채널이 쿼리가 되며 적절한 채널을 선택하면 됩니다.

Workflow – Post-Actions

실행하기

앞에서 설정한 조건을 맞춰 PR 을 등록하거나 조건을 충족시켜도 되지만 아래 이미지의 오른쪽 끝에 붙어 있는 Start Build 버튼을 눌러도 됩니다. 2번까지 빌린 결과입니다. 최초에는 실패했는데 현재 제가 맡고 있는 프로젝트 내 SPM 중 private repository가 존재하여 접근을 못해 발생한 오류입니다.

다음 편에 다루겠지만 private repository 접근이 안되면 아래 이미지 상단에 노란색 배경으로 이를 알리는 메시지가 버튼과 함께 등장합니다. 버튼을 누르면 개발자 포털로 이동하는데 이 때에는 AppStore Connect 로 가서 Xcode Cloud -> 설정 -> 저장소로 가면 권한을 얻을 수 있는 버튼이 보여집니다.

Xcode Cloud Dashboard

마치며…

참 쉽죠? 이미 CI/CD 를 이용하고 있다면 사실 읽을 거리가 없었을 것이라 생각합니다. 맛보기로 시작한 글이니 여기까지 끊겠습니다. 참고로 이 글은 3편까지 연재 계획 중입니다. 미리 예고를 드리자면, 2편은 실제 구축하면서 겪은 사례들 위주로 글을 구성하려하고 3편은 Danger-Swift 구성하면서 겪은 사례들을 풀어보고자 합니다.

16 Shares:
답글 남기기

이메일 주소는 공개되지 않습니다.

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

You May Also Like