[iOS] CI / CD - Bitrise

김상우·2022년 2월 21일
2

ref : bitrise 홈페이지, 패스트 캠퍼스

CI / CD

앱스토어에 앱을 배포하는 과정에서는 앱 빌드, 앱 테스트, 앱 배포 등의 과정이 필요하다. 유저의 피드백을 반영하거나, 버그를 수정하거나, 코드를 리팩토링하거나, 기능을 추가하는 등의 이유로 앱을 꾸준히 업데이트 해야 할거다.
업데이트 할 때마다 빌드, 테스트, 배포 과정을 계속 반복해야 하는데, 이 과정을 자동화 한다면 편리 할 것이다. 이런 자동화 과정을 CI / CD 라고 한다.
CI : Continuous Integration - 지속적 통합, 빌드
CD : Continuous Deploy - 지속적 배포


Bitrise 가입, 설정하기

대표적인 CD / CD 툴 중 하나로 Bitrise가 있다. 첫번째 하나의 앱만 등록할 때는 무료로 사용할 수 있다.

bitrise: https://www.bitrise.io/?utm_source=google&utm_medium=cpc&utm_campaign=R3-S-Brand&utm_term=BrandR3_exact&gclid=Cj0KCQiApL2QBhC8ARIsAGMm-KFObz91_cSvVasI2E9ka152dl35VCeAAJOMkTC8yHd80OBs-q2ElMYaAuarEALw_wcB&gclsrc=aw.ds


1. Bitrise 회원가입. github 로 회원가입 할 수 있다.


2. 앱 workspace 생성


3. 설정에서 Apple, Github 연동



Gihub Repository 를 Bitrise 에 추가하기

  1. Add New App on web UI


  1. Github Repository 선택


  1. 필요한 설정 이후 Configuration complete 확인


  1. Bitrise 가 자동으로 iOS 앱으로 인식을 해서 Workshit path, Scheme name 을 생성해줬다. MANUAL 로 수동 설정하면 까다롭다. expoty method 는 development 로 설정하고 confirm 한다.


  1. 앱 아이콘 설정


  1. 설정을 마친 후, 빌드 확인

일단 Webhook 은 사용하지 않았다. 설정을 마친 뒤 kicked off 를 클릭하면 빌드를 확인할 수 있다.


  1. 가상의 mac 머신에서 빌드가 실행된다.


  1. 스크롤을 내리면서 log 를 확인해 볼 수 있다.

ssh-key 활성화

가상 머신에 git-clone, cache pull. 근데 첫 빌드라 남아있는 캐쉬가 있진 않음.

Bitrise 에서 자동으로 테스트 코드를 실행한 모습. Unit Test Code 중에서는 다행히 테스트 실패하는 코드가 없다.

UI Test Code 는 난리가 났다 ㅋㅋ 절반이 테스트를 실패한다.

테스트가 실패했기 때문에 빨갛게 Failed 라고 뜨는데 기분이 나빴다..


빌드 자동화 환경설정

자동화 환경설정 단계
1. Xcode Project 의 Unit Test 가 실행되는 Workflow 생성
2. 새로운 Commit이 Push되면 자동으로 Unit Test Workflow 가 실행되도록 설정
3. Xcode Project 가 빌드되고 테스트가 실행될 macOS, Simulator 환경 설정


[ 1단계 ]

Dashboard - app - Team 클릭


아래로 스크롤 내려서 authentication 연결 후 Test the Connection.


그 다음 workflow 로 들어가서 확인. 디폴트 workflow 를 살펴보면,
active ssh key : 깃허브 연결
git clone repository : 가상 머신에 클론
birtise cache pull : 이전에 빌드했던 캐쉬가 있다면 가져옴
run cocoapods install : 코코아팟 설치
xcode test for ios : xcode test 실행

따라서, 내가 원하는 workflow 를 새롭게 설정할 것이 아니라면 default 값 그대로 가져가면 된다.


[ 2 단계 ]

Triggers 로 들어가서 확인. Trigger : 어떤 조건에서 workflow 를 실행할 것인지. 확인해보면 push branch * (모든 branch) 에서 primary workflow 가 실행되는 것을 확인할 수 있다. 아까 확인한 default workflow 가 primary workflow 였다. ( 무료 버전에서는 Trigger 를 다중 생성 못한다 )

따라서, Triggers 도 default 값 그대로 사용해준다.


[ 3 단계 ]

Stacks & Machines 에 들어가서 Xcode 버전 설정. 개발하는 Xcode 버전과 일치하게 설정.

-> 환경설정 완료


Start Build 로 CI 시작.


아래는 코드 수정 후, 테스트와 빌드에 성공한 모습

profile
안녕하세요, iOS 와 알고리즘에 대한 글을 씁니다.

0개의 댓글