Jenkins安卓项目的流水线实践

一、流程介绍

  1. 开发提交代码后,交由测试人员进行构建
  2. 测试人员根据需求在​​Jenkins​​平台选择构建的包环境
  3. 但确认加固时,会通过加固保对APK进行加固,并自动生成多渠道包
  4. 将构建的好的制品会上传至蒲公英平台,并调用API接口返回二维码
  5. 多渠道包在构建完成后会自动进行归档,并在Job页面提供下载地址

下面是自己画的一个简单的流程图,仅供参考

Jenkins安卓项目的流水线实践

说明:本文不会详细描述整个过程,只是把大致流程讲一下,将核心的代码贴出来,大家可自行根据自己的项目去改造。相关的​Jenkins​file文件已经上传至本人的GitHub仓库,可自行进行克隆下载;如果对您有帮助别忘记点个​start​

二、核心代码

#!groovy
@Library('jenkinslib') _

pipeline{
agent {
label 'build'
}

environment {
VERSION_CODE = "${VERSION_CODE}"
APP_VERSION = "${APP_VERSION}"
//APK包文件名称
appName = "${appName}"
}

stages{
stage("GetCode"){
steps {
script {
checkout([$class: 'GitSCM', branches: [[name: '${branchName}']], extensions: [], userRemoteConfigs: [[credentialsId: 'gitlab-admin-user', url: '${srcUrl}']]])
}
}
}

stage("正式包构建") {
steps{
script{
sh '''
gradle assemble -PVERSION_CODE=${VERSION_CODE} -PAPP_VERSION=${APP_VERSION} -PDEBUGGABLE=${DEBUGGABLE}
'''
}
}
}

stage('APK加固') {
steps {
script {
withCredentials([usernamePassword(credentialsId: 'jiagu-admin-token', passwordVariable: 'passwd', usernameVariable: 'user'), usernamePassword(credentialsId: 'jiagu-keystore-token', passwordVariable: 'aliasPasswd', usernameVariable: 'keyPasswd')])
sh """
java -jar ${jiaguPath} -login ${user} ${passwd}
java -jar ${jiaguPath} -importsign ./app/app.jks ${keyPasswd} [这是别名] ${aliasPasswd}
## 可以通过下面的配置单独选择需要加固增强服务配置
java -jar ${jiaguPath} -config -update -crashlog -x86
## 生成加固包
java -jar ${jiaguPath} -jiagu ${jiaguApkPath} ${outjiaguApk} -autosign -automulpkg
"""
}
}

}
}
stage('发布普通制品') {
steps {
script {
sh """
cp app/build/outputs/apk/debug/内测版_v*_debug.apk ./${appName}_内测版_v${APP_VERSION}.apk
##上传蒲公英
appPath = "./${appName}_内测版_v${APP_VERSION}.apk"
reqUrl = "https://upload.pgyer.com/apiv1/app/upload"
curl -F "file=@${appPath}" -F "uKey=${ukey}" -F "_api_key=${apikey}" ${reqUrl}
"""
}
}
}
}

post {
success {
script {
echo "success"
}
}
failure {
script {
echo "failure"
}
}
aborted {
script {
echo "aborted"
}
}
}
}

三、效果演示

Jenkins安卓项目的流水线实践

Jenkins安卓项目的流水线实践

Jenkins安卓项目的流水线实践

Jenkins安卓项目的流水线实践

Jenkins安卓项目的流水线实践

发表评论

相关文章