본문 바로가기

Android/CI CD

[Bitrise] Bitrise를 사용해보자 - 1. 기본 Setting

728x90

CI/CD Tool로 Github Action을 사용해 보았으니, 다음으로는 Bitrise를 사용해보고자 한다.

우선, Github Action이 러닝 커브가 낮다고 들어서 가장 먼저 적용해 보았는데, 사용해보니 Bitrise가 기본적인 세팅 하기에는 훨씬 더 쉬운 것으로 보인다.

다만, 무료 사용에는 제한이 있다는 것이 흠인것으로 보인다.

 

이번 글에서는 Bitrise를 사용하기 위한 기본적인 세팅에 대하여 알아보고자 한다.


 

우선,

Bitrise 사용을 위하여 Bitrise 페이지에 들어가서 회원가입을 해주도록 한다.

 

 

Github, Bitbucket 등 연동 가능한 플랫폼이 있어서 필자는 Github을 연동하여 계정을 만들었다.

 

 

계정을 생성한 후에는 Worksapce를 만들어주고 시작하면 된다.

 

 

Workspace를 생성하면 다음과 같은 화면을 볼 수 있는데, 여기서 Add New App을 눌러 새로운 App을 만들어 주면 된다.

 

화면 상단에서 확인할 수 있는 500 credits는 무료로 사용할 수 있는 빌드 횟수라고 생각하면 된다.

필자가 확인해보니 빌드 1분에 2크레딧이 소모되니 시간이 많이 소요되는 작업을 진행하게 되면 횟수가 상당히 적을 것으로 보인다.

테스트를 위해 빈 프로젝트를 만들어 빌드를 해보았을 때 1분 30초 쯤 소요되어 4크레딧이 사용되는 것을 보니, 실 업무에 사용하기 위해서는 반드시 결제를 하고 사용해야 할 것 같다.

 

 

Create New App 탭에서는 Bitrise에서 사용할 앱을 만들어 주면 되는데, UI를 보면 알겠지만 순서대로 설정해야 하는 것들을 보여주고 있다. 

순서대로 따라가면서 작업을 진행해주면 쉽게 생성이 가능하다.

 

 

Connect Repository탭에서는 연동된 Gibhub의 Repository 목록이 나오게 되고, 여기서 원하는 Repo를 등록해주면 된다.

필자는 테스트를 위해 만든 빈 프로젝트를 추가해서 사용하였다.

 

 

계속해서 설정을 하다보면, 전부 간단하게 할 수 있는데 이 부분을 조심해야 한다.

상단에 루트 디렉토리를 설정하는 부분이 있는데, 필자가 github action을 적용할 때 했던 실수처럼, 프로젝트 자체의 폴더 구조에 따라서 해당 부분을 .이 아닌 ./~ 로 변경을 해주어야 한다.

또한, 하단의 모듈에 대한 설정은 보통 app모듈로 생성되기 때문에 app을 작성하면 되지만, 멀티 모듈의 구조일 때, 애플리케이션 모듈을 따로 작성해 주어야 한다.

 

간단하게 설정에 필요한 값들을 넣어서 끝낸 후 앱을 생성하면 바로 연결된 Repo에 있는 코드를 사용하여 빌드를 시작한다.

 

 

메인 액티비티만 존재하는 기본 프로젝트임에도 불구하고 빌드하는데 시간이 1분 이상 소요된다.

 

 

이처럼 빌드가 성공하면 정상적으로 Repository에 연결이 된 것이다.

 

여기서 의문점이 하나 생길 것이다.

Github Action을 사용했을 때는 yml파일에 액션을 작성하여 어떤 식으로 VM 환경에서 빌드되는지에 대한 설정을 해주었는데, Bitrise에서는 이러한 설정을 하지 않았는데 알아서 빌드가 되었다.

그렇다면 아무런 작업을 추가하지 않아도 알아서 설정을 해주는 것인가?

 

결과부터 말하자면, 기본적인 설정을 알아서 해준다.

 

 

빌드가 된 부분을 보면, Edit workflow 탭을 확인할 수 있을 것이다.

 

 

workflow탭에 들어가보면, 별도로 추가 및 설정을 하지 않았는데 이처럼 기본적인 설정이 되어있는 것을 볼 수 있다.

 

기본적으로 설정되어있는 작업에 대하여 간단히 설명하면 다음과 같다.

 

  • Git Clone Repository : 연결된 깃의 Repository를 복사해온다.
  • Bitrise.io.cache:Pull : 해당 앱에서 빌드되었던 적이 있다면 해당 캐시를 가져온다.
  • Install missing Android SDK : 앱 실행에 필요하지만 설치되어있지 않은 SDK를 설치한다.
  • Android Unit Test : Unit Test를 실행한다.
  • Bitrise.io.Cache:Push : Build Cache를 업데이트한다.
  • Deploy to Bitrise.io -... : Bitrise에 배포한다.

 

이러한 작업들이 기본적으로 설정이 되어있기 때문에 별도의 추가를 하지 않아도 알아서 빌드하고, 배포까지 해준다.

 

다시 빌드 화면으로 돌아와서, 하단에 보이는 Log 탭을 확인해보자.

workflow에 선언되어있는 각 항목별로 구분되어서 로그가 찍혀있고, UI가 아주 깔끔하게 되어있어 확인하기도 편하다.

 

 

여기서, cache-pull에 관련된 항목은 성공했다는 표시가 아닌 노란색으로 뜨게 되는데,

그 이유는 해당 항목에서 수행하는 작업이 빌드되었던 적이 있을 경우에 캐시를 가져오는 것이기 때문에 해당 부분은 첫 번째 빌드에서는 수행하지 못하는 것이 맞다.

 

 

다음으로 Artifacts 탭을 확인해보면 2개의 zip 파일이 업로드되어있을 것이다.

 

 

apk파일이 아니고, workflow에 기본적으로 들어가 있던 unit test에 대한 값들이 들어가 있는 파일들이다.

 

 

각 파일들을 다운로드하여서 확인해보니 이러한 형태로 되어있는데, 일단 우리가 원하고자 하는 작업을 진행할 때 해당 파일에 대한 용도를 알 필요까지는 없을 것 같아서 알아보지 않고 넘어갔다.

 

테스트에 대한 어떠한 데이터가 필요할 때 확인하면 될 것으로 보이는데, 필요할 때 해당 workflow에 설명을 확인해보도록 할 예정이다.

 

마지막으로 Details & Add-ons 탭을 확인해보면,

 

 

이처럼 다양한 데이터들이 나오게 되는데, 해당 부분을 통해서 트리거 된 시간, 빌드의 시작과 끝 시간을 확인할 수 있는 등

해당 빌드에 대한 데이터를 확인할 수 있다.

 

여기서, 우측에 보이는 add-ons 같은 경우에는 필자가 별도로 추가하는 옵션을 설정하지 않았지만 기본적으로 설정이 되어있는 workflow를 통해 추가가 된 부분으로 보인다.

 

각각 클릭해보면 어떠한 기능을 하는지 알 수 있겠지만,

ship의 경우 빌드 버전에 대한 정보가 나와있고, 클릭하여 Detail을 확인해보면 여러 가지 기능을 사용할 수 있는 것으로 보인다.

 

 

del code라고 적혀있는 부분은 필자가 테스트를 위해 Commit을 진행했을 때 commit msg이다.

 

여기서 해당 버전을 클릭하면

 

 

이처럼 여러 가지의 탭을 확인할 수 있는데, 추가적인 설정을 진행하게 되면 이용할 수 있는 것으로 보인다.

 

다음으로 Test Reports를 확인해 보면,

 

 

이처럼 unit test에 대한 결과를 릴리즈, 디버그에 따라서 각각 보여주게 된다.

필자는 별도의 테스트 코드를 넣어두지 않은 기본 프로젝트이기 때문에 1ms로 통과되었지만, 별도의 테스트 코드를 작성하는 경우 이곳에서 테스트 결과에 따른 디테일한 정보를 확인할 수 있을 것이다.

 

각 실행된 unit test를 누르게 되면, 테스트 케이스에 따른 결과도 각각 확인이 가능하니 추후에 unit test를 추가하게 되면 유용하게 사용할 수 있을 것 같다.

 

 

마지막인 meercode 같은 경우 클릭해서 확인해보니 아직 연동이 안 된 부분이고, 연동을 눌러봤더니 정상적으로 동작하지 않아서 넘어가도록 하겠다.


이것으로 간단하게 Bitrise 기본 세팅을 해보았다.

필자가 진행하면서 생략한 부분들이 좀 있는데, 그것은 정말로 화면을 보고 텍스트를 읽고 그것에 맞춰서 진행하기만 하면 되는 부분이라 생략을 하였다.

 

기본 세팅이라고 말하기도 뭐한 게, 정말 아주 쉽게 가이드라인을 따라가면 설정이 가능하게 해 두었다.

모바일에 특화되어있는 CI/CD라고 하는 게 확실하게 체감되었고, 사용자 편의성도 상당히 높아서 사용하는 것에 큰 무리가 없을 것으로 보인다.

다만, 무료의 경우 사용에 한계가 확실하기 때문에 회사에서 결제를 해주었으면 좋겠다는 생각이 든다.

 

다음 게시글에서는, Github Action을 사용할 때도 연동했던 Slack을 연동하고, APK를 다운로드할 수 있도록 작업을 진행해보고자 한다.

728x90