본문 바로가기

Android/CI CD

[Bitrise] Bitrise를 사용해보자 - 2. Slack 연동

728x90

본 게시글은 이전 게시글에 이어서 작성된 부분입니다.

2022.03.30 - [Android/CI CD] - [Bitrise] Bitrise를 사용해보자 - 1. 기본 Setting

 

이전 글에서 Bitrise에 대한 기본적인 세팅을 했으니, 이번에는 Slack을 연동하고 APK 파일을 받을 수 있도록 하는 작업을 진행해보려고 한다.


Slack을 연동하기 위해서는,

Github Actions에서 진행했던 스텝을 그대로 진행해주어야 한다.

 

Slack API 페이지에서 App을 새로 생성해준다.

 

 

Slack의 workspace를 지정해서 앱을 생성해주고,

 

 

WeebHooks 옵션을 활성화시켜서

 

 

Weebhook URL을 생성하여 Bitrise에서 사용하기 위하여 복사를 해둔다.

 

이제 Bitrsise 페이지로 이동하여 Slack 연동을 시켜주면 된다.

다른 작업을 진행하기 전에, 위에 복사를 해둔 Webhook URL부터 사용하도록 하자.

 

 

이전 글에서 생성해둔 Workflows에 들어가서 Github Actions에서 했던 것과 마찬가지로 Secrets에 환경 변수를 지정해주도록 한다.

여기서 필자는 변수명을 헷갈리지 않게 Github Actions와 동일하게 해 두었지만, Bitrise에서는 등록해둔 변수를 검색으로 찾을 수 있기 때문에 기억할 수 있다면 아무렇게나 저장해도 상관없다.

 

그 후, 다시 Workflows 탭으로 들어와서 좌측에 있는 workflow가 나열된 부분에서 + 버튼을 누른다.

 

 

+버튼을 누르게 되면 우측에 창이 나오는데, 그곳에 Slack을 검색하면 Send a Slack message가 나오는데 이것을 클릭해주기만 하면 등록이 완료된다.

 

 

필자는 가장 마지막 부분에 모든 것이 완료되면 슬랙 메시지를 보내게 하고 싶어서 해당 위치에 추가하였다.

잘못된 위치에 추가했으면 Drag & Drop으로 위치를 변경하면 된다.

 

여기서 필자는 아주 놀랐다.

기존에 Github Actions를 사용할 때 Job의 위치를 변경하기 위해서는 yml파일에서 수정해야 했는데, Bitrise에서는 GUI를 통해 간단하게 옮길 수 있다는 것과,

필요한 Job을 검색해서 클릭해주기만 하면 알아서 기본적인 세팅이 되어있는 Job이 추가된다는 점이 아주 편리하고 좋다고 생각했다.

 

이렇게 Slack 이벤트를 추가했으면 클릭하여 세부적인 옵션을 설정하도록 한다.

 

 

맨 처음에 Secrets에 등록했던 Webhook URL을 이곳에서 사용하면 된다.

Title을 보면 알 수 있듯이 예민한 데이터이기 때문에 정보를 추가할 대 Select secret variable이라는 버튼이 활성화된다.

 

 

해당 버튼을 누른 후에 등록한 변수명을 입력하거나, 하단의 항목에서 선택하여 적용하도록 한다.

 

그 후에 메시지를 보낼 Slack Channel 설정을 해주도록 한다.

 

 

하단으로 스크롤을 내리면 Target Slack Channel, group or username 탭이 있는데, 해당 탭을 클릭하여 연결할 슬랙의 채널 이름을 #을 붙여서 입력해준다.

필자는 Github Actions 테스트를 위해 만들어 둔 채널을 그대로 사용하였다.

 

그 후에, 해당 탭의 우측에 있는 Insert variable을 클릭해서 Slack에 보낼 메세지를 선택해주어야 한다.

 

 

필자는 Github Actions에서 그랬던 것처럼 빌드 결과에 대한 값을 전달하길 원하기 때문에 Build를 검색하여 Bitrise_build_status를 선택하여 보내도록 해주었다.

 

 

해당 값까지 선택을 하면 이처럼 채널명 다음에 선택한 변수가 추가된 것을 확인할 수 있을 것이다.

 

이렇게 값을 변경해주고 다른 값들은 우선 건들지 않아도 정상적으로 동작한다.

빌드 성공/실패에 따른 메시지, 아이콘 등 커스텀할 수 있는 옵션들이 많기 때문에 추후에 필요에 따라 해당 값들을 변경하여 사용하면 될 것으로 보인다.

 

 

설정이 끝나면, Ctrl+s 를 눌러서 저장하거나 우측 상단에 있는 Ctrl+s 버튼을 눌러서 반드시 저장을 해주어야 한다.

저장이 끝난 후, 이전 글에서 진행했던 첫 번째 빌드를 Rebuild를 진행해 본다.

 

 

정상적으로 Slack에 메시지가 보내지는 것을 확인할 수 있다.


리빌드를 진행했을 때 정상적으로 동작하는 것을 확인했으니, 새로운 Commit을 push 했을 때도 동작을 확인하려 했다.

하지만 새로운 push를 진행해도 Bitrise에서 정상적으로 빌드가 진행되지 않는다.

 

확인해보니 최초 빌드할 때 알아서 빌드가 되는 것을 push 할 때 빌드되는 것이라고 착각했던 것이지, 실제로는 그런 것이 아니었다.

따라서, 해당 Workflow가 진행되는 트리거를 설정해주어야 한다.

 

 

 

다시 Workflow를 들어가 보니, Triggers 부분에 트리거가 없다고 경고가 떠있는 것을 확인할 수 있었다.

 

UI만 봐도 트리거를 쉽게 추가할 수 있어 보인다.

 

 

push에 따른 Trigger를 추가할 예정이므로 push를 눌러주도록 한다.

기본적으로 브랜치는 *로 되어있기 때문에 어느 브랜치에서 푸시하는 것인지는 상관 안 하고 받도록 설정해 준다.

어차피 테스트용 프로젝트이기 때문에 main 브랜치 하나만 존재한다.

 

그리고 해당 트리거가 실행되었을 때 동작할 workflow를 설정해주도록 한다.

필자는 지금까지 작업했던 workflow는 primary로 작업이 되어있기 때문에 primary를 클릭하여 설정해주도록 하였다.

 

 

어디서 작업이 되어있는지 확인하기 위해서는 이처럼 workflows에서 workflow를 선택하여 어디서 작업이 진행되어있는지 확인하면 된다.

 

그 후 저장을 해준 다음, 새롭게 커밋하여 push를 진행시킨다.

 

 

위가 push를 통해 빌드가 진행된 부분이다.

Commit Message와 Commit에 대한 github 링크가 추가되어 확인할 수 있게 되어있다.


Slack에 전달된 메시지를 확인해 보면,

 

 

하단에 View App, View Build에 관련된 항목만 나오고 APK에 대한 항목은 확인할 수 없다.

APK를 install 할 수 있도록 작업을 추가해보도록 하자.

 

workflows에서 Slack에 대한 설정을 확인해보도록 하자.

 

 

가장 하단으로 스크롤을 해보면, 이와 같은 항목을 볼 수 있다.

위에 Slack 메시지에서 확인할 수 있었던 View App, View Build와 더불어 Install Page가 설정이 되어있는 것을 알 수 있다.

 

 

그렇다면, 무엇이 문제인지 확인하기 위하여 Build 된 항목의 log를 확인해보자.

 

 

... 부분을 클릭하여 항목을 자세히 확인해 보면, 이와 같은 부분을 찾을 수 있다.

Slack에 표시되는 2개의 버튼에 대해서는 URL이 등록되어 있는데, Install page에는 URL이 존재하지 않는다.

그렇다면, 해당 URL이 정상적으로 생성되지 않았다는 것이다.

 

확인을 해보니, 놀랍게도 primary workflow에서 기본적인 세팅에 Android Build에 대한 작업이 없었다.

Build가 되지 않았기 때문에 APK가 존재하지 않았고, 그렇기 때문에 대한 URL이 정상적으로 존재하지 않았던 것이다.

 

 

+ 버튼을 눌러 Android Build를 검색하여 추가하도록 한다.

기본적으로 Project Location만 설정이 되어있고, Module과 Variant는 값이 비어있다.

(위의 사진은 필자가 값을 입력한 상태이다)

 

필자는 별도로 환경 변수를 설정하여 사용하였는데, 환경 변수 설정은 상단에 있는 Env Vars 탭에서 진행할 수 있다.

 

 

Module에는 app을, Variant에는 debug를 설정하였다.

 

다시 Android Build에 대한 설정으로 돌아가서 확인해 보면,

Module 환경변수인 App 모듈을 타겟하고, variant 변수인 Debug 모드를 타겟하여 Build를 진행하게 되는 것이다.

위의 해당 값들은 필수 값이 아니기 때문에, 값을 넣지 않고 저장하게 되면 default로 설정된 값을 기준으로 빌드를 진행한다.

 

설정이 끝났으면, 저장을 한 후에 Rebuild나 Push를 진행하여 정상적으로 Slack 메시지에 Install page가 나오는지 확인을 해보면 된다.

 

 

필자는 새로 빌드가 진행되기 전에, 메세지에 대한 옵션을 몇 가지 변경해서 확인해보았기 때문에 위의 메시지와는 다른 부분이 있을 것이니 신경 쓰지 않아도 된다.

하단에는 원했던 Install Page가 나오는 것을 확인할 수 있었고,

 

 

해당 버튼을 누르면 이와 같이 apk를 다운로드할 수 있는 페이지로 이동되는 것을 확인할 수 있다.


Bitrise를 적용하면서 계속 느끼지만, GUI로 설정하는 부분이 많고, UI가 굉장히 깔끔하게 되어있어서 사용하는 것에 어려움이 없다고 느낀다.

또한, 기본적으로 설정이 세팅되어있는 것들이 많고 가이드가 상당히 잘 되어있어서 아직까지 새로운 작업을 추가하는데 큰 무리가 없었다.

 

무료의 경우 빌드에 제한이 있어서 그렇지, 정말 사용하기 편한 CI/CD 툴인 것 같다.

 

다음 게시글에서는, Bitrise에서 추가할 수 있는 새로운 작업들을 확인해보고, 추가해보고 글을 작성할 예정이다.

728x90