사전 작업
1. docker & docker-compose 설치
2. 볼륨 데이터 권한 설정
mkdir /data/jenkins-android-docker
sudo chown -R 1000:1000 /data/jenkins-android-docker
docker-compose를 이용한 실행
아래 URL 을 참고하여 필자는 docker-compose를 아래와 같이 작성하여 진행하였다
https://github.com/WindSekirun/Jenkins-Android-Docker
WindSekirun/Jenkins-Android-Docker
🐳 Docker image for Jenkins with Android. Contribute to WindSekirun/Jenkins-Android-Docker development by creating an account on GitHub.
github.com
[root@localhost ~]# cat docker-compose.yml
version: '3.1'
services:
jenkins:
image: windsekirun/jenkins-android-docker:1.1.2
container_name: jenkins
ports:
- "8080:8080"
- "50000:50000"
volumes:
- "/data/jenkins-android-docker:/home/jenkins_home"
- "/var/run/docker.sock:/var/run/docker.sock"
restart: always
[root@localhost ~]# docker-compose up
이후 젠킨스 초기 비번 등록 및 계정 생성은 생략
[Jenkins 빌드 관련 설정]
Jenkins 환경 변수 설정
Jenkins에 ANDROID_HOME 설정
Jenkins 관리 -> 시스템 설정 -> Global properties -> Environment variables (체크)
이름 : ANDROID_HOME
값 : /opt/android-sdk-linux
위의 값은 아래의 명령어로 관련 환경 변수 확인 가능(위의 URL에서 해당 파일 참고)
[root@localhost Jenkins-Android-Docker-master]# cat Dockerfile |grep ANDROID_HOME
ENV ANDROID_HOME /opt/android-sdk-linux
Jenkins JOB 생성 및 설정
안드로이드 프로젝트 등록
새로운 Item -> "Enter an item name" 프로젝트 이름작성, "Freestyle Project" 선택 후 OK
Git 서버 설정
소스 코드 관리에 "Git"선택
Repository URL에 자신의 Git 주소를 적는다.
Credentials는 "Add"를 눌러서 자신의 레포에 해당하는 아이디와 비밀번호를 적는다.


Build, Build 후 조치 설정
"Add build step"을 눌러서 "Invoke Gradle script"를 선택
"Use Gradle Wrapper" 선택 후 Tasks에 "clean assemble" 작성
"빌드 후 조치 추가"를 눌러서 "Archive the artifacts"를 선택
Files to archive에 "*/.apk" 작성

Publish Over FTP 또는 Publish Over SSH Plugin을 이용하여 빌드된 apk 파일 전송(사전 설치 필요)


빌드가 잘되는지 테스트해보자!
아래의 "실행" 버튼을 누르면 빌드가 진행되고 아래의 경로에 apk 파일 생성 확인

[삽질의 흔적들]
1. SDK 라이센스 오류 관련
일부 안드로이드 라이센스 관련해서 오류가 나서 빌드가 실패 할 수도 있다
[젠킨스 오류 전문]
Could not determine the dependencies of task ':app:compileReleaseJavaWithJavac'.
> Failed to install the following Android SDK packages as some licences have not been accepted.
build-tools;29.0.2 Android SDK Build-Tools 29.0.2
To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.
Alternatively, to transfer the license agreements from one workstation to another, see http://d.android.com/r/studio-ui/export-licenses.html
Using Android SDK: /opt/android-sdk-linux
[해결]
젠킨스 컨테이너 접속하여 아래 명려어 실행하여 라이센스 관련 조치하자
yes | sdkmanager --licenses
[참고]
추가적으로 아래와 같이 Webhook을 설정해주면 깃허브에서 push되면 자동으로 빌드하도록 구성 할 수있음
https://yaboong.github.io/jenkins/2018/05/14/github-webhook-jenkins/
Jenkins 로 빌드 자동화하기 1 - GitHub 에 push 되면 자동 빌드하도록 구성
개요 GitHub private repository 에 소스를 push 했을때, Jenkins 서버에 webhook 을 날려서 자동으로 빌드가 되도록 세팅하는 과정을 알아본다.
yaboong.github.io
참고URL
: https://kkensu.tistory.com/59
: https://stackoverflow.com/questions/38096225/automatically-accept-all-sdk-licences
'APP Test > 테스트 환경구성' 카테고리의 다른 글
Android Stuido Emulator (0) | 2020.08.13 |
---|---|
Appium 구축 (0) | 2020.08.13 |
JENKINS 설정 및 테스트 (0) | 2020.08.13 |