Jenkins安装
下载地址:https://jenkins.io/zh/ 安装文档:https://jenkins.io/zh/doc/pipeline/tour/getting-started/ 按照默认的推荐完成安装即可。
插件和全局配置
jdk配置
android sdk配置
android ndk配置
gradle配置
git配置
这些就不多说了,本地的话应该都有了,如果部署到远程服务器上的话得安装一下。
安装Jenkins插件
Manage Jenkins >> Manage Plugins
搜索安装Git插件(远程仓库)
搜索安装Git Parameter插件(配置选择构建分支)
搜索安装Gradle插件(Android构建工具)
搜索安装description setter plugin插件(添加构建后的描述)
下载安装fir插件(自动上传apk到fir平台)
也可以直接在https://plugins.jenkins.io/上搜索下载插件,然后在Jenkins插件管理上传hpi文件。
Jenkins - Manage Jenkins - Confogure System - 找到全局属性
配置自己的环境 Gradle我没配置,而是在具体的项目配置中勾选Force GRADLE_USER_HOME to use workspace
创建Jenkins任务
创建任务
点击“新建Item”,并且输入任务名称(例:autoapk)新建一个自由风格项目(freeStyle project)
依次输入任务描述,选择第四个勾选框this project is parameterized 点击“添加参数”,可以看到很多选择我们大部分用到的是choice parameter(可选参数),git parameter(这个选项需要安装插件Git Parameter Plug-In),第一个可选参数我们填写打包的环境BUILD_TYPE,选项则是我们提供的选项描述已经很清晰了。
第二个可选参数我们选择打包的平台(我们是为不同厂家的平板打包使用不同签名的包)至于我们项目中如何拿到这个值我们需要在gradle.properties中配置一个同名的PLATFORM
在根目录的build.gradle中使用
apply plugin: 'com.android.application'
//xxx1 1 xxx2 2
def platFormType = PLATFORM ? Integer.valueOf(PLATFORM) : 1
android {
signingConfigs {
debug {
if (platFormType == 1) {
storeFile file("../xxx1_platform.jks")
storePassword 'xxxxxx'
keyAlias 'xxxx1'
keyPassword 'xxxxxx'
} else if (platFormType == 2) {
storeFile file("../xxx2_platform.jks")
storePassword 'xxxxxx'
keyAlias 'xxxx2'
keyPassword 'xxxxxx'
}
}
release {
//与debug配置相同
}
}
}
第三个可选参数配置分支BRANCH这个地方可以使用Git Parameter更方便选择各个分支,我们现在也可以使用String Parameter手动输入分支名称。
源码管理
输入项目SSH地址
选择添加凭据,SSH秘钥
通过$BRANCH引用上边我们填写的可选参数
全局凭证的添加 Jenkins首页找到凭据-系统-全局凭据-左侧选择添加凭据
添加好之后就可以在源码管理 git下的Credentials右侧的添加
构建触发器
未配置,可以参考其他人Jenkins这个地方的配置。
构建环境
未配置,可以参考其他人Jenkins这个地方的配置。
构建
这里需要设置gradle,我们增加一个构建步骤:Invoke Gradle script,然后配置如上,也可以选择 Use Gradle Wrapper,实际操作中选择Invoke Gradle script后边task也会执行。
Tasks里面输入我们要执行的任务,一般是clean assemble$BUILD_TYPE,其实就是gradle打包构建命令,输入在这里即可。
点开高级:Pass all job parameters as Project properties,一定要勾选这个选项,代表把你上面的那些参数用来当作gradle构建参数,否则的话是不会起作用的。
Force GRADLE_USER_HOME to use workspace意思是自动下载使用项目依赖的Gradle 勾选不勾选都没问题。
Execute shell 构建完成之后执行
#!/bin/bash
echo ">>> 开始上传到蒲公英"
dir="/Users/Shared/Jenkins/Home/workspace/AutoMakeApk/taxi/build/outputs/apk/${BUILD_TYPE}/"
fileName=""
cd $dir
for i in $(ls)
do
echo $i
temp=$i
if [ "${temp##*.}"x = "apk"x ]
then
fileName=$i
fi
done
fullPath=$dir$fileName
echo 文件全路径:$fullPath
RESULT=$(curl -F "file=@${fullPath}" -F "uKey=替换为自己的uKey" -F "_api_key=替换为自己的api_key" https://qiniu-storage.pgyer.com/apiv1/app/upload)
echo $RESULT
sub_json=${RESULT##*appKey\":\"}
appkey=${sub_json%\",\"userKey*}
export DOWNLOAD_URL=https://www.pgyer.com/$appkey #设置全局变量,为了发邮件拼接完整路径
echo "#######################################################################################"
echo "##"
echo "下载地址:<<< ${DOWNLOAD_URL} >>>"
echo "##"
echo "#######################################################################################"
最后保存填写内容退出。
开始构建项目