使用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' } } } }
如果您觉得本篇文章还不错,欢迎点赞,转发分享(转发请注明出处),感谢~~
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)