一、流程介绍
- 开发提交代码后,交由测试人员进行构建
- 测试人员根据需求在Jenkins平台选择构建的包环境
- 但确认加固时,会通过加固保对APK进行加固,并自动生成多渠道包
- 将构建的好的制品会上传至蒲公英平台,并调用API接口返回二维码
- 多渠道包在构建完成后会自动进行归档,并在Job页面提供下载地址
下面是自己画的一个简单的流程图,仅供参考
说明:本文不会详细描述整个过程,只是把大致流程讲一下,将核心的代码贴出来,大家可自行根据自己的项目去改造。相关的Jenkinsfile文件已经上传至本人的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"
}
}
}
}