반응형
CI/CD(지속적 통합/지속적 제공)
CI/CD의 "CD"는 지속적인 서비스 제공(Continuous Delivery) 및
또는 지속적인 배포(Continuous Deployment)
Workspace
- Bitrise 계정 밑에 프로젝트 단위로 생성
App
- Workspace 밑에 앱별로 생성하면 될듯
- 앱 생성시 깃헙 연결, SSH 설정, 브랜치 선택 등 이 필요함
Build
- App 내에서 실행(스케쥴, 트리거, 수동 등으로 시작됨)
- 수동 빌드인 경우 워크플로우를 선택하면 가능
- 빌드는 차수별로 #으로 넘버링 되어서 표시됨
Workflow
- 빌드에 대한 워크 플로우로 기본적인것들은 자동으로 추가되어있음
- App 내에서 여러개를 만들 수 있으며, 트리거에서 어떤 워크플로우를 실행할지 선택 가능
- 여러 플러그인이 있어서 기본 워크 플로우 과정에 추가 할수 있음(슬랙 연동, 파이어베이스 앱배포 연동 등)
- Android 의 경우 Build 이후에 Android Sign 과정을 별도로 두어야함
- qa, prod 등 배포 상황 별로 워크플로우를 구성하면 될듯
Code Signing
Android 의 경우 키스토어 파일, 비밀번호 설정
Secrets
키 관리 가능, 파이어베이스나 슬랙 연동을 위한 키 등
Env Vars
환경변수 관리, 빌드시 사용하게 되는 값 정의 가능, 다른메뉴에서 참조 가능
Triggers
- Push / Pull Request / Tag 이벤트에 따른 트리거 설정
- 트리거에따라 어떤 빌드 Workflow를 실행할지 지정 가능
- 아래는 타겟 마스터로 PR 올라오는 경우 primary 워크플로우를 수행하는 설정
- 깃헙 트리거 적용하려면 깃헙 앱으로 Bitrise 설치해두어야 함
Workflow 플러그인 : Android Sign 설정
- sign 과정을 추가하지 않으면 bitrise debug key 로 서명하는듯함.
- 안드로이드 API 레벨 30이상이면 워크 플로우에서 Android Sign 설정시 아래 두 옵션 설정 필요.
- 설정하지 않으면 사이닝된 APK 설치시 잘못된 패키지 에러 발생
Workflow 플러그인 : 슬랙 메시지 연동
- 슬랙에서 Webhook URL 가져와서 등록해준다.
- 메시지 및 버튼 커스텀 가능
Workflow 플러그인 : FIrebase App Distribution 연동
- 플러그인이 베타로 되어있으나 사용에 문제는 없어 보임
- 파이어베이스 앱 아이디, CLI KEY 등록 과정 필요
Workflow 플러그인 : Google Play Console 연동
- 스토어의 내부테스트, 테스트 트랙등으로 바로 배포가 가능
전체과정 (pr trigger)
1. pull request 발생하면 bitrise check 가 in progress 상태가 됨
2. bitrise 에서는 빌드가 생성되어 running 상태가 됨
3. 빌드 완료되면 체크가 패스됨
4. bitrise artifacts 탭에 바이너리가 정리됨 (signed 가 등록한 키로 사이닝한 바이너리)
5. 파이어 베이스에 앱 배포됨 (테스트 인원 선택 가능함)
6. 슬랙 메시지 연동 (등록한 메일로도 알림옴)
확인 필요한 것들
- 빌드별로 어플리케이션 아이디를 다르게 할때 구성을 어떻게 해야할지?
- 깃 브랜치 정책, 테스트 프로세스 등을 설정 전에 정리 할 필요가 있음.
- 트리거를 어떤 기준으로 해야될지? PUSH / PR / TAG
- 깃 SSH KEY 를 특정 사용자것으로 등록해두어도 되는건지? (권한)
장점
- 모든 설정을 쉽고 빠르게 구성할 수 있음 (따로 스크립트 작성할 필요 없음)
- 플러그인들이 계속 업데이트 되고 있어 확장성이 좋음
- 앱 빌드 기록 등이 관리가 편해지고 기준이 생김
단점
- Bitrise 페이지가 속도가 좀 느리고, 로그인이 안되거나 할때가 있음
https://techblog.woowahan.com/2706/
반응형
'안드로이드' 카테고리의 다른 글
Google Cloud Speech (STT) 설정 (0) | 2022.11.24 |
---|---|
ScopeStorage 저장공간에 대한 정의 (0) | 2022.11.14 |
Compose 훑어보기 (0) | 2022.11.10 |
STT관련 라이브러리 API정보 (0) | 2022.11.09 |
STT (구글) - 샘플코드 (0) | 2022.11.09 |