2023. 10. 19. 13:55ㆍAndroid/Contents
- 도커 설치
- 도커 허브 계정 생성
- 도커 공식이미지 이용 컨테이너 생성
- git runner 설치 및 등록
- .gitlab-ci.yml 작성 및 push 빌드 확인(CI)
- 프로젝트 fastlane 구성
- .gitlab-ci.yml 작성 및 push 배포 확인(CD)
- Docker : 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트
- Docker Hub : Docker에서 운영하는 Docker 이미지 저장소 서비스
- Docker Client : 리눅스 컨테이너를 관리하는 도구로 미리 만들어진 Docker 이미지를 사용해 개발 환경을 구축하거나 애플리케이션을 손쉽게 실행할 수 있음
- Docker Image : 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것으로 상태값을 가지지 않고 변하지 않음
- Official Image : Docker Hub에 업로드된 수많은 이미지 중 Docker에서 제공하는 공식 마크가 붙은 이미지, 태그를 통해 버전관리를 함- Dockerfile : Docker 이미지를 생성하기 위한 스크립트 파일(이미지를 배포하는 것보다 작은 용량의 스크립트 하나로 같은 이미지를 만들어낼 수 있어 배포에 용이함)
- Docker Container : 상태값을 가지고 이미지를 실행한 것
[CI:gitlab runner 구성]
- gitlab runner는 gitlab 자체에서 제공하는 shared runner와 직접 설치 후 tag로 지정가능한 specific runner가 있음
> shared runner는 별도의 gitlab-runner 설치 과정 없이 .gitlab-ci.yml 파일에 image 구문으로 필요한 도커 이미지를 이용해 별도 runner 지정하지 않고 push하면 shared runner가 돌아감
> specific runner는 runner를 직접 설치하고, 등록하는 과정이 필요하며 등록 시 지정한 tag명을 통해 .gitlab-ci.yml에서 실행될 runner를 선택할 수 있음
- 도커의 이미지가 필요한 이유는 runner가 .gitlab-ci.yml 실행 시 필요한 환경(sdk 등등)을 갖추게 하기 위함
- shared runner는 image 구문으로 도커 이미지를 사용하고, specific runner의 경우 해당 환경을 갖춘 곳에 직접 설치하는 형태로 진행됨
- 진행한 gitlab runner 구성은 specific runner를 이용했음
- 로컬에 바로 runner를 설치하고 진행해도 되지만 도커를 사용해보기 위해 도커 이미지로 컨테이너를 빌드해 runner를 설치하는 형태로 작업함
- 제약사항은 도커 이미지는 official image만을 이용(해당 환경을 갖추기 위해 official image를 base로 dockerfile을 작성해 이미지 빌드 후 컨테이너 생성해 작업)
- .gitlab-ci.yml 파일을 작성해 push하면 해당 runner를 통해 pipeline에서 job이 수행됨
[CD:fastlane 구성]
- 프로젝트에 fastlane을 초기화 시켜야해서 로컬에 fastlane을 설치함
- CI에서 사용했던 specific runner를 그대로 사용하기 위해서 해당 runner에도 fastlane을 설치함(로컬에 runner를 설치했다면 별도로 필요 없는 과정)
- 이 과정에서 bundler install이 제대로 진행되지 않았는데 apt-get update && apt-get install -y ruby-dev build-essential 로 해결(dockerfile 생성 시 추가해야할 듯)
> 보통 shared runner로 fastlane을 수행하기 위한 환경이 구성된 이미지를 사용하는지..? 아니면 별도의 runner를 지정해서 돌리는지..?
- CI 구성 때와 마찬가지로 .gitlab-ci.yml 파일에 해당 stage를 선언하고, 실행할 스크립트를 작성한 후 push하면 해당 runner를 통해 pipeline에서 job이 수행되고, cd가 성공하면 app tester에 앱 배포가 되어 설치가 가능함
[프로젝트 gitlab push 및 파이프라인 작업 확인]
- gitlab에 소스가 push되면 해당 기술 내용에 따라 tag로 지정한 runner가 active 상태이면 자동 수행됨
- assembleDevDebug라는 Job이 등록되어 있고, 그 script 내용이 순차적으로 진행되어 gitlab cicd 탭에서 pipeline의 결과로 볼 수 있음
- cicd 탭의 job을 상세를 확인하면, 순차적으로 script가 실행되고, job이 fail 되었다면 에러 로그 또한 살펴볼 수 있음
'Android > Contents' 카테고리의 다른 글
DeepLink(feat.Navigation Dynamic Link 설정) (0) | 2023.07.13 |
---|---|
Kotlin Style Guide vs. Android Studio Lint & Coding Style (0) | 2022.04.23 |
Content Provider & File Provider (0) | 2021.06.03 |
Scoped Storage (1) | 2021.06.03 |