'docker-compose'에 해당되는 글 2건

프로젝트 관련

APP Test 2020. 8. 13. 14:09

해당 페이지는 프로젝트에 관련해서 설명하는 페이지입니다.

자세한 설명은 해당 링크를 참고하시면 됩니다.

 

도커 컨테이너로 구성된 빌드서에서 빌드를 진행

빌드환경은 따로 구축하지 않고 도커 허브에 있는 이미지로 구성함

 

 

Maven, TestNG, AppiumClient를 통한 테스트 스크립트 작성

Appium은 Selenium 베이스라 어떤 언어로도 사용 가능하지만, Java 클라이언트가 가장 사용량이 많고, 그만큼 서포트가 빠르며 안정된 클라이언트이기 때문에 Java를 선택하였다

 

젠킨스를 통해 빌드 및 테스트 스크립트 실행

E2E(End-to-End) 테스트이기 때문에 실제로 테스트 할 모바일 테스트기기가 필요했다

필자는 안드로이드 스튜디오의 에뮬레이터를 이용하여 프로젝트를 진행하였다.

블로그 이미지

정신차려이각박한세상속에서

,

사전 작업

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"를 눌러서 자신의 레포에 해당하는 아이디와 비밀번호를 적는다.

Git > Repositories > 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 파일 전송(사전 설치 필요)

Jenkins > 환경설정

 

 

 

빌드가 잘되는지 테스트해보자!

아래의 "실행" 버튼을 누르면 빌드가 진행되고 아래의 경로에 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
블로그 이미지

정신차려이각박한세상속에서

,