일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 영어회화
- 메타 쓰레드
- Realtime Database
- Python
- endless scrolling
- 특수문자
- 쓰레드 비디오 다운로드
- 자료구조
- conventional NFR
- non conventional NFR
- skeleton architecture
- 라이브아카데미
- 안드로이드
- 특수기호
- cloud firestore
- git
- 직장영어
- firestore
- Firebase
- re-engineering
- 파이썬
- meta threads
- django
- 이모티콘
- 젠킨스
- jenkins
- 쓰레드 이미지 다운로드
- Android
- 객치지향프로그래밍
- RecyclerView
- Today
- Total
Owl Life
젠킨스의 build description을 커스텀 해보자. [description setter plugin] 본문
젠킨스의 빌드 히스토리에 보여지는 설명 부분을 어떻게 커스텀 하는지 알아보도록 하겠습니다.
사용 용도에 따라 다양한 정보들을 노출 시킬수 있겠지만, 본 포스팅에서는 빌드된 apk 파일명과 용량. 그리고 이전 빌드 산출물 대비 용량이 어떻게 변하였는지를 노출 시켜보도록 하겠습니다.
description setter plugin 설치
플러그인 관리 페이지에 접근 후 "Available" 탭에서 description setter plugin을 검색 후 설치합니다. 젠킨스 재시작까지 완료 하셔야 합니다.
워크스페이스 Configure
워크스페이스의 Configure 메뉴로 진입 후 execute shell에 새로운 항목을 추가해줍니다. 이미 추가된 execute shell 항목이 있다면 그 하단에 추가하여 마지막에 수행 될 수 있도록 합니다.
본 예제 사용한 샘플 스크립트를 첨부하니 참고 바랍니다.
#!/bin/bash -xe
set +x
APK_NAME="app-debug.apk"
FILE_NAME_FOR_APK_SIZE="prev_apk_size.tmp"
# 현재 빌드된 APK 사이즈 계산 (in KB)
CUR_APK_SIZE=$(ls -lk app/build/outputs/apk/debug/$APK_NAME | tr -s " " | cut -d " " -f5)
CUR_APK_SIZE_IN_KB="$(($CUR_APK_SIZE/1024))"
# 이전에 빌드된 APK 사이즈와 비교 후 차이 계산
PREV_APK_SIZE=0
DIFF_APK_SIZE_IN_KB=0
if [ -f "$FILE_NAME_FOR_APK_SIZE" ]; then
PREV_APK_SIZE=`cat $FILE_NAME_FOR_APK_SIZE`
PREV_APK_SIZE_IN_KB="$(($PREV_APK_SIZE/1024))"
DIFF_APK_SIZE_IN_KB="$(($CUR_APK_SIZE_IN_KB-$PREV_APK_SIZE_IN_KB))"
fi
echo cur $CUR_APK_SIZE byte
echo prev $PREV_APK_SIZE byte
# 현재 APK 사이즈를 파일에 저장. (in byte)
echo $CUR_APK_SIZE > $FILE_NAME_FOR_APK_SIZE
# Description setter
echo [BUILD_DESCRIPTION] "$APK_NAME $CUR_APK_SIZE_IN_KB"KB "("$DIFF_APK_SIZE_IN_KB"KB)"
다음과 같은 과정으로 스크립트가 실행됩니다.
1. 빌드된 산출물의 apk size를 읽어옵니다. byte 단위로 가져온 후 KB로 치환해줍니다.
2. 이전에 빌드된 산출물의 사이즈가 파일에 저장되어 있다면 사이즈를 읽어온 후에 diff 값을 계산해줍니다.
3. 다음 빌드에 사용하기 위하여 현재 산출물의 사이즈는 다시 "prev_apk_size.tmp" 라는 파일에 저장시켜줍니다.
4. 빌드 히스토리에 보여줄 description을 콘솔에 출력합니다.
콘솔에 출력하는 이유는, 적용된 플러그인이 콘솔에 출력된 텍스트로부터 정규식을 통하여 조건에 해당하는 텍스트를 가져와서 그대로 빌드 히스토리에 보여주도록 되어 있기 때문입니다. "[BUILD_DESCRIPTION]"라는 prefix를 붙인 이유도 정규식에서 이용하기 위함입니다.
이제, Add post-build action 으로부터 Set build description을 선택 후 항목을 추가해줍니다.
정규식 입력란에 아래와 같이 입력해줍니다. 띄워쓰기가 맞지 않아도 제대로 값을 읽어올수가 없으니 주의하셔야 합니다.
\[BUILD_DESCRIPTION\] (.*)
Description은 몇개의 라인을 표시할것인지를 나타냅니다. \1\2\3 과 같이 사용이 가능하며 본 샘플은 한줄만 표시하기에 \1을 입력하였습니다.
저장 후 빌드를 하면 APK 사이즈의 증감을 한눈에 알아 볼 수 있습니다.
단순한 문자 뿐만 아니라 html 태그도 적용 가능한데 이 부분은 추가로 포스팅 하도록 하겠습니다.
'Jenkins' 카테고리의 다른 글
Jenkins에 checkstyle plugin 적용하기 (0) | 2019.10.25 |
---|---|
Jenkins에 lint plugin 적용하기 (0) | 2019.10.24 |
Jenkins Publickey 에러로 repository 접근할 때 error 발생하는 이슈 해결. (ssh 키 생성 및 등록) (0) | 2019.10.24 |
Jenkins에서 Github 저장소에 있는 Gradle 기반의 Android 프로젝트 생성하기 (0) | 2019.10.17 |
우분투 18.04 젠킨스 설치 (0) | 2019.10.17 |