Bitbucket Pipeline + Telegram Bot으로 App 자동 빌드/배포 하기 (1)
Bitbucket Pipeline으로 Android APK 빌드하기 – Youknow
본 포스팅에서는 Bitbucket 환경에서 Pipeline 기능을 사용하여 Android APK를 빌드하고 이를 Bitbucket Downloads 영역에 업로드하는 것을 다루고자 합니다. 젠킨스 CI 환경을 구축하는 방법도 있겠지만, 이미 Bitbucket을 사용하고 있다면 Bitbucket에서 제공하는 Pipeline 기능을 이용해보는 것도 좋겠다고 생각하여 찾아보게 되었습니다. App password 생성 우선 App password를 생성해야 합니
youknow.kim
앱을 빌드해서 어디론가 배포를 해야할 때가 있다. 예를 들자면 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