Jenkins Android打包(Mac平台)

Mac下Jenkins Android打包

一、安装tomcat

a、下载tomcat

http://tomcat.apache.org/
Jenkins Android打包(Mac平台)_第1张图片

下载完成后解压到:

/Users/xiaxveliang/Library/

b、启动tomcat:

sudo sh startup.sh

c、验证

Jenkins Android打包(Mac平台)_第2张图片

二、安装Jenkins

a、下载 jenkins.war

https://jenkins.io/index.html

Jenkins Android打包(Mac平台)_第3张图片

下载完成后,放入以下路径:

/Users/xiaxveliang/Library/ApacheTomcat/webapps

b、打开

http://localhost:8080/jenkins

Jenkins Android打包(Mac平台)_第4张图片

c、找不到initialAdminPassword

找不到

/var/root/.jenkins/secrets/initialAdminPassword

解决方案:
mac finder访问/var/root 目录
mac 不能打开文件夹xxx 因为您没有权限查看其内容

d、修改jenkins job工作目录

// 修改后的job目录
/Users/xiaxveliang/a_Work/Jenkins/${JOB_NAME}

Jenkins Android打包(Mac平台)_第5张图片

Jenkins Android打包(Mac平台)_第6张图片

Jenkins Android打包(Mac平台)_第7张图片

e、添加git 凭据

Jenkins Android打包(Mac平台)_第8张图片

Jenkins Android打包(Mac平台)_第9张图片

f、丢弃原则

Jenkins Android打包(Mac平台)_第10张图片

g、选择构建分支

*/$BRANCH

Jenkins Android打包(Mac平台)_第11张图片

Jenkins Android打包(Mac平台)_第12张图片

特别 特别 特别 注意下载 Persistent Parameter 插件 记住上一次构建成功的参数选择
在这里插入图片描述

h、定时构建

// 定时构建:工作日(周一到周五)9~18点每隔2个小时构建一次
H 9-18/2 * * 1-5
// 轮询:每隔5分钟检查一次是否有代码更新
H/5 * * * * 

Jenkins Android打包(Mac平台)_第13张图片

i、构建

build apk

shell 脚本 build

# build
/Applications/Android\ Studio.app/Contents/gradle/gradle-4.10.1/bin/gradle clean assembleRelease

shell 脚本rename apk

# rename
mv $WORKSPACE/build/outputs/apk/test-release.apk $WORKSPACE/build/outputs/apk/$JOB_NAME-$BUILD_NUMBER-$BRANCH.apk

Jenkins Android打包(Mac平台)_第14张图片

j、归档 (完成)

# 归档文件
**/$JOB_NAME-$BUILD_NUMBER-$BRANCH.apk

Jenkins Android打包(Mac平台)_第15张图片

到这里,可以说jenkins Android打包已经完成。但我们还有其他一些细节需要完善,比如说生成二维码、发邮件等

k、生成一个指向 JOB_NAME-BUILD_NUMBER-BRANCH.apk的Html

shell 脚本截图

Jenkins Android打包(Mac平台)_第16张图片

shell 脚本

#create html
 
cd $WORKSPACE/build/outputs/apk
rm -rf $JOB_NAME.html
touch $JOB_NAME.html
 
cat << EOF > $JOB_NAME.html





$JOB_NAME


 

$JOB_NAME-$BUILD_NUMBER-$BRANCH

EOF #copy html to tomcat folder

归档JOB_NAME.html

**/$JOB_NAME-$BUILD_NUMBER-$BRANCH.apk,**/$JOB_NAME.html

Jenkins Android打包(Mac平台)_第17张图片

l、生成二维码——>指向 JOB_NAME.Html

下载QRcode.jar

QRcode.jar下载

shell 脚本截图
Jenkins Android打包(Mac平台)_第18张图片

shell 脚本

# java -jar xxx/QRcode.jar url=xxx/test.apk image=qrcode.png save=xxx/xxx/
java -jar /Users/xiaxveliang/Library/Tomcat/webapps/QRCode.jar url=http://10.236.148.225:8080/jenkins/job/$JOB_NAME/$BUILD_NUMBER/artifact/build/outputs/apk/$JOB_NAME.html image=qrcode.png save=$WORKSPACE/build/outputs/apk/

归档qrcode.png

**/$JOB_NAME-$BUILD_NUMBER-$BRANCH.apk,**/$JOB_NAME.html,**/qrcode.png

Jenkins Android打包(Mac平台)_第19张图片

m、邮件发送

Jenkins/系统管理/系统设置

Jenkins Android打包(Mac平台)_第20张图片

Jenkins Android打包(Mac平台)_第21张图片

Jenkins Android打包(Mac平台)_第22张图片

job_name/configure

Jenkins Android打包(Mac平台)_第23张图片

Jenkins Android打包(Mac平台)_第24张图片

Jenkins Android打包(Mac平台)_第25张图片

Jenkins Android打包(Mac平台)_第26张图片

Jenkins Android打包(Mac平台)_第27张图片

邮件模版




    
    [Android内测]${ENV, var="JOB_DESCRIPTION"}



以下是Jenkins自动发送的邮件,请勿回复!


构建信息

n、切换 test/online 环境

Jenkins Android打包(Mac平台)_第28张图片

Jenkins Android打包(Mac平台)_第29张图片

# test or online
# file
FILE_DIR=$WORKSPACE/src/com/test/constants/NetConstants.java
# code test or online
Test_Str="public static boolean TEST = true"
Online_Str="public static boolean TEST = false"
# test
# sed 's/123/456/g' replace 123 to 456
if [ $ENV_TEST = "true" ];then
`sed -i.bak "s/$Online_Str/$Test_Str/g" $FILE_DIR`
elif [ $ENV_TEST = "false" ];then
`sed -i.bak "s/$Test_Str/$Online_Str/g" $FILE_DIR`
fi

# build
/Applications/Android\ Studio.app/Contents/gradle/gradle-4.10.1/bin/gradle clean assembleRelease

注:关于sed命令的使用,可参考 sed命令在MAC和Linux下的不同使用方式

========== THE END ==========

Jenkins Android打包(Mac平台)_第30张图片

你可能感兴趣的:(Jenkins Android打包(Mac平台))