程序地带

使用Jenkins+Blue Ocean 持构建自动化部署之安卓源码打包、测试、邮件通知


什么是BlueOcean?

BlueOcean重新考虑了Jenkins的用户体验。BlueOcean由Jenkins Pipeline设计,但仍然兼容自由式工作,减少了团队成员的混乱,增加了清晰度。


连续交付(CD)Pipeline的复杂可视化,允许快速和直观地了解Pipeline的状态。
Pipeline编辑器通过引导用户直观和可视化的过程创建Pipeline,使创建Pipeline平易近人。
个性化,以适应团队每个成员的角色需求。
需要干预和/或出现问题时确定精度。BlueOcean显示了Pipeline需要注意的地方,便于异常处理和提高生产率。
用于分支和拉取请求的本地集成可以在GitHub和Bitbucket中与其他人进行代码协作时最大限度提高开发人员的生产力。
BlueOceans使用

依赖插件


该插件安装完成后,在所要构建的任务中就会出现BlueOcean选择,该项目是基于上篇博客Pipeline项目,传送门:https://www.cnblogs.com/feng0815/p/14287056.html



点击打开 Blue Ocean

运行

实时展示进度


并行运行

以上的运行都是串行的,必须上个流程结束才能运行下个流程,这样就会造成执行效率较低。
对于没相互依赖的流程,我们可以进行并行运行
修改执行脚本


pipeline{
agent {
label "master"
}
stages{
stage("获取源码") {
parallel {
stage("安卓程序源码") {
steps {
sh "mkdir -p AndroidSampleApp"
dir("AndroidSampleApp"){
git branch:"master", url:"https://gitee.com/sfboy/AndroidSampleApp.git"
}
}
}
stage("自动测试程序源码") {
steps {
sh "mkdir -p iAppBVT_Python"
dir("iAppBVT_Python"){
git branch:"master", url:"https://gitee.com/sfboy/iAppBVT_Python.git"
}
}
}
}
}
stage("安卓编译打包") {
steps {
sh """
. ~/.bash_profile
cd AndroidSampleApp
sh gradlew clean assembleDebug
"""
}
}
stage("测试与发布") {
parallel {
stage("发布测试包") {
steps {
archiveArtifacts artifacts: "AndroidSampleApp/app/build/outputs/apk/debug/app-debug.apk"
}
}
stage("自动化"){
stages{
stage("部署") {
steps {
sh """
. ~/.bash_profile
cd AndroidSampleApp
apk=app/build/outputs/apk/debug/app-debug.apk
{
#try: 卸载现有的安卓app
adb uninstall com.appsflyer.androidsampleapp
} || {
#catch
echo "no com.appsflyer.androidsampleapp package"
}
sleep 5
#安装安卓app
adb install $apk
"""
}
}
stage("自动测试") {
steps {
sh """
. ~/.bash_profile
cd iAppBVT_Python
#更新python依赖库
pip3 install -r requirements.txt
#运行自动化测试
pytest -sv test/bvt_test.py --tc-file iAppBVT_Python.json --tc-format json
"""
}
}
}
}
}
}
stage("通知邮件") {
steps {
emailext body: "$DEFAULT_CONTENT", recipientProviders: [[$class: "RequesterRecipientProvider"]], subject: "$DEFAULT_SUBJECT"
}
}
}
}


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/feng0815/p/14287949.html

随机推荐

3D游戏编程作业9

3D游戏编程作业9

血条作业目标实现过程1、人物状态2、IMGUI实现3、UGUI实现4、使用方法4.1IMGUI4.2UGUI效果展示1、IMGUI2、UGUI两种实现方式的优缺点1、IMGUI优点缺点2、UGUI优点...

weixin_43953962 阅读(637)

spark需要maven管理吗_Maven编译Spark程序

Maven编译Spark程序更新时间:2015年12月29日15时10分来源:传智播客云计算学科浏览次数:在IDEA中编写Spark入门级程序WordCountSpark是用Scala语言开发的&#x...

weixin_39918928 阅读(766)