반응형
일반적인 방법
사전 준비
- android-example 프로젝트 생성 후 git repository로 푸시
- jenkins 서버와 git repository간 SSH 설정
install-essential-packages 빌드 생성 및 실행
- Build > Execute shell
apt-get update apt-get install wget
install-android-sdk 빌드 생성 및 실행
- Build > Execute shell
# cmdline-tools 설치 rm -rf * wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip unzip *.zip rm *.zip # platform-tools 설치 echo "y" | cmdline-tools/bin/sdkmanager --sdk_root=sdk "platform-tools" # SDK 경로 출력 echo "ANDROID_SDK_ROOT : $WORKSPACE/sdk"
- SDK 경로
ANDROID_SDK_ROOT : /var/jenkins_home/workspace/install-android-sdk/sdk
SDK 경로를 환경변수로 설정
- Jenkins 관리 > 시스템 설정 > Global properties > Environment variables 체크
- 이름
- ANDROID_SDK_ROOT
- 값
- /var/jenkins_home/workspace/install-android-sdk/sdk
build-android-example 빌드 생성 및 실행
- 소스 코드 관리 > Git
- 사전 준비 단계 내용을 참고하여 Repository URL, Credentials 값 설정
- Build > Execute shell
# 실행 가능 파일로 변경 chmod +x gradlew
- Build > Invoke Gradle script
- Use Gradle Wrapper : 체크
- Tasks
# 일반 APK 빌드 clean assemble # DEBUG APK 빌드 # clean app:assembleDebug # RELEASE APK 빌드 # clean app:assembleRelease
- Build > Execute shell
# APK 파일 경로 출력 find $WORKSPACE -name "*.apk"
- 결과
/var/jenkins_home/workspace/build-android-example/app/build/outputs/apk/release/app-release-unsigned.apk /var/jenkins_home/workspace/build-android-example/app/build/outputs/apk/debug/app-debug.apk
jenkins-pipeline을 활용한 방법
install-essential-packages
pipeline {
agent any
stages {
stage('install-essential-packages') {
steps {
sh "apt-get update"
sh "apt-get install wget"
}
}
}
}
install-android-sdk
pipeline {
agent any
stages {
stage('install-android-sdk') {
steps {
sh "rm -rf *"
sh "wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip"
sh "unzip *.zip"
sh "rm *.zip"
sh "echo 'y' | cmdline-tools/bin/sdkmanager --sdk_root=sdk 'platform-tools'"
sh "echo 'ANDROID_SDK_ROOT : $WORKSPACE/sdk'"
}
}
}
}
build-android-example
pipeline {
agent any
stages {
stage('git-clone') {
steps {
git(
url: "git@github.com:sanggeun-choi/android-example.git",
credentialsId: "android-example",
branch: "develop"
)
}
}
stage('build-with-gradle') {
steps {
sh "chmod +x gradlew"
sh "./gradlew clean assemble" // 일반 APK 빌드
// sh "./gradlew clean app:assembleDebug" // DEBUG APK 빌드
// sh "./gradlew clean app:assembleRelease" // RELEASE APK 빌드
sh "find $WORKSPACE -name '*.apk'"
}
}
}
}
참고
반응형
'Development > Android' 카테고리의 다른 글
[Android] 무선으로 빌드하기 (0) | 2024.01.07 |
---|---|
[Android] NDK (0) | 2021.09.25 |
[Android] Chromecast (0) | 2021.02.16 |
[Android] ExoPlayer (0) | 2021.02.10 |
[Android] ViewTreeObserver (0) | 2021.02.10 |