Bitbucket Pipeline + Telegram Bot으로 App 자동 빌드/배포 하기 (1)
앱을 빌드해서 어디론가 배포를 해야할 때가 있다. 예를 들자면 QA팀과 같이 내부에서 테스트를 거치기 위해 배포를 해야할 때다. 보통이라면 IDE에서 빌드 후 apk를 클라우드나 사내 메신져로 공유를 하기 마련이다. 하지만 이 마저도 자동화된 시스템을 지원하고 있다. 바로 Pipeline을 통해서 자동으로 빌드하고 배포할 수 있다. 우리는 자동 빌드를 넘어서 Telegram Bot으로 배포까지 하는 것을 목표로 한다.
Bitbucket Pipeline 설정
일단, 자동 배포를 설정할 Repo에서 Pipeline을 활성화 시켜주어야 한다. 처음에 yml파일을 작성하는 데 있어서 자료를 찾고 코드를 짜는 데 많은 시간이 들었으나, 앞서 링크한 블로그에서 도움을 받아 해결했다. 그 후 Telegram Bot으로 배포하는 코드만 추가하였다.
우선, pipeline에서 자신의 Repo에 접근하기 위해서는 권한이 필요한데, 이 권한을 먼저 추가해 보도록 하겠다. 좌측 하단에서 프로필을 눌러 설정에 들어간다. 그 다음 아래 사진과 같이 App Password에 들어간다. 그리고 Create app password 클릭.
그 다음 Repository 권한을 준다.
이후 뜬 비밀번호를 비밀스러운 어딘가에 반드시 기록해 둔다. 창을 한 번 닫으면 비밀번호를 다시는 볼 수 없다. (...)
Settings에 들어가서 Pipeline을 활성화 해준 후 Pipeline에 들어가 yml을 작성한다. 왼쪽 메뉴에서 Pipelines 를 클릭해 바로 작성할 수 있다.
bitbucket-pipelines.yml 작성
프로젝트 폴더 최상단에 제목과 같이 bitbucket-pipeline.yml 파일을 생성해 Commit-Push해도 되고, Pipeline 메뉴에 들어가 바로 작성하여도 된다. 우린 바로 작성해 보도록 하자.
Bitbucket에서 많은 템플릿을 준다. Other를 선택하고 에디터에 아래 소스를 삽입 후 오른쪽 하단에 Commit file 버튼을 누르면 된다.
image: mingc/android-build-box:latest
pipelines:
default:
- step:
caches:
- gradle
script:
# Build apk
- chmod a+x ./gradlew
- ./gradlew assembleDebug
artifacts:
- app/build/outputs/apk/debug/*.apk
- step:
script:
# Saving artifact
- curl -X POST --user "${BB_AUTH_STRING}" "https://api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@"app/build/outputs/apk/debug/app-debug.apk"
이렇게 까지 하면 일단 앱이 빌드 돼서 왼쪽 메뉴에 보면 Downloads가 있다. 여기로 앱이 등록이 된다. 그 전에 한가지 더 설정을 해 주어야 한다. BB_AUTH_STRING 변수를 추가해 주어야 한다. 아까 생성해둔 비밀번호를 사용한다.
Repo 설정에 들어가 Repository variable에 들어간다. Name에는 yml에 작성했던 변수인 BB_AUTH_STRING을 적고 value에는 username:password 형태로 작성하여 적은 뒤 Secured 체크 후 Add한다. 만약 자신의 이름이 gildong이고 생성된 비밀번호가 hackThis123@ 이라고 가정하면, value에 gildong:hackThis123@ 을 적으면 된다.
이렇게 하고 Push하거나 run pipelines를 하게 되면 앱이 빌드되어 최종적으로 Downloads에 들어가게 될 것이다. 다음 편에서는 TelegramBot을 만들고 이 Bot에다가 자동으로 파일을 첨부하여 보내는 것 까지 만들어 보도록 하곘다.
'Android' 카테고리의 다른 글
Biometric을 이용한 지문 인식 사용 (2) | 2020.03.20 |
---|---|
Bitbucket Pipeline + Telegram Bot으로 App 자동 빌드/배포 하기 (2) (0) | 2020.02.12 |
DataBinding 오류 해결 (0) | 2020.02.01 |
[MAC] ADB PATH 설정하기 (0) | 2020.01.30 |
zxing 라이브러리로 QR코드 생성 (0) | 2019.11.07 |
댓글
이 글 공유하기
다른 글
-
Biometric을 이용한 지문 인식 사용
Biometric을 이용한 지문 인식 사용
2020.03.20 -
Bitbucket Pipeline + Telegram Bot으로 App 자동 빌드/배포 하기 (2)
Bitbucket Pipeline + Telegram Bot으로 App 자동 빌드/배포 하기 (2)
2020.02.12 -
DataBinding 오류 해결
DataBinding 오류 해결
2020.02.01 -
[MAC] ADB PATH 설정하기
[MAC] ADB PATH 설정하기
2020.01.30