zoukankan      html  css  js  c++  java
  • 使用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(<span class="hljs-string">'获取源码'</span>) {
            parallel {
                stage(<span class="hljs-string">'安卓程序源码'</span>) {
                    steps {
                        sh <span class="hljs-string">'mkdir -p AndroidSampleApp'</span>
                        <span class="hljs-built_in">dir</span>(<span class="hljs-string">"AndroidSampleApp"</span>){
                            git branch:<span class="hljs-string">'master'</span>, url:<span class="hljs-string">'https://gitee.com/sfboy/AndroidSampleApp.git'</span>
                        }
                    }
                }
    
                stage(<span class="hljs-string">'自动测试程序源码'</span>) {
                    steps {
                        sh <span class="hljs-string">'mkdir -p iAppBVT_Python'</span>
                        <span class="hljs-built_in">dir</span>(<span class="hljs-string">"iAppBVT_Python"</span>){
                            git branch:<span class="hljs-string">'master'</span>, url:<span class="hljs-string">'https://gitee.com/sfboy/iAppBVT_Python.git'</span>
                        }
                    }
                }
            }
        }
    
        stage(<span class="hljs-string">'安卓编译打包'</span>) {
            steps {
                sh <span class="hljs-string">'''
                    . ~/.bash_profile
                    cd AndroidSampleApp
                    sh gradlew clean assembleDebug
                '''</span>
            }
        }
    
        stage(<span class="hljs-string">'测试与发布'</span>) {
            parallel {
                stage(<span class="hljs-string">'发布测试包'</span>) {
                    steps {
                        archiveArtifacts artifacts: <span class="hljs-string">'AndroidSampleApp/app/build/outputs/apk/debug/app-debug.apk'</span>
                    }
                }
    
                stage(<span class="hljs-string">'自动化'</span>){
                    stages{
                        stage(<span class="hljs-string">'部署'</span>) {
                            steps {
                                sh <span class="hljs-string">'''
                                    . ~/.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
                                '''</span>
                            }
                        }
    
                        stage(<span class="hljs-string">'自动测试'</span>) {
                            steps {
                                sh <span class="hljs-string">'''
                                    . ~/.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
                                '''</span>
                            }
                        }
                    }
                }
            }
        }
    
        stage(<span class="hljs-string">'通知邮件'</span>) {
            steps {
                emailext body: <span class="hljs-string">'$DEFAULT_CONTENT'</span>, recipientProviders: [[$<span class="hljs-class"><span class="hljs-keyword">class</span>:</span> <span class="hljs-string">'RequesterRecipientProvider'</span>]], subject: <span class="hljs-string">'$DEFAULT_SUBJECT'</span>
            }
        }
    }
    

    }

  • 相关阅读:
    Gates entitled as knight
    the next generation Office
    Beautiful songs
    一则比较搞笑的新闻:【人才】微软招募英才 机会不容错过
    About cmt lint tools
    Alpha's blog open !
    抱歉!
    新闻:IBM的新工具CHIPHOPPER! 一套能够极大扩展Linux应用范围的新工具、新资源和新软件
    读书笔记:Thinking in Java (一)
    The best coders are:/什么是最牛的程序员
  • 原文地址:https://www.cnblogs.com/R-bear/p/15045745.html
Copyright © 2011-2022 走看看