美文网首页持续集成-CI
Blue Ocean实现pipeline

Blue Ocean实现pipeline

作者: 大鹏之动 | 来源:发表于2019-04-03 16:51 被阅读0次

    Blue Ocean简单介绍

    Blue Ocean能够自动的创建和编写你的Jenkinsfile,并且会对Jenkinsfile进行版本控制。Jenkinsfile主要记录每个stage具体处理哪些内容,不同阶段的stage构成一个完整的pipeline。目前版本不支持svn,jenkins团队正在修复大量svn相关的bug,后期可能会考虑svn集成。

    环境说明

    • centos 6.8
    • Jenkins 2.161.1以上版本[尽量选择最新版本包]
    • Pipeline插件
    • Blue Ocean插件
    • gitlab代码仓库【目前不支持svn】

    Blue Ocean的安装

    选择Blue Ocean后会自动安装依赖包,建议安装选择下载待重启后安装。如下图进行插件安装,安装后重启进程。


    install-blue-ocean

    Blue Ocean的图形编辑

    进入这步证明已经完成重启进程操作,可以直接点击进入Blue Ocean功能,如下创建第一个流水线。因为我的仓库是gitlab,所以选择git。仓库URL选择你的项目路径,如:git@gitlab.example.com:vincent/test.git。

    create-git-pipeline

    填写后会出现一个ssh key,把这个key在gitlab上授权一下。如下:


    add-ssh-key

    授权后进入后续创建操作,这个过程可能比较长需要等。如果你的仓库根目录有Jenkinsfile,则直接开始第一次构建过程。如果仓库中不含Jenkinsfile则开启pipeline-editor,图形化编辑工作流。如下:


    pipeline-editor

    编辑完后会生成Jenkinsfile,并提交到你的仓库根目录,开始执行一次完整的构建过程。


    build-code

    生成的jenkinsfile

    每次修改流水线工作流程并提交修改会修改一次Jenkinsfile,Jenkinsfile如下格式。具体如何修改Jenkinsfile可以参照官方文档:https://jenkins.io/doc/book/pipeline/syntax/

    pipeline {
      agent any
      stages {
        stage('clean env') {
          parallel {
            stage('clean env') {
              steps {
                echo 'test'
                sh 'echo "this is test"'
              }
            }
            stage('clean env1') {
              steps {
                sh '''echo "this is clean env1"
    sleep 10'''
              }
            }
          }
        }
        stage('switch') {
          input {
            message 'Should we continue?'
            id 'Yes, we should.'
            submitter 'alice,bob'
            parameters {
              string(name: 'PERSON', defaultValue: 'Mr Jenkins', description: 'Who should I say hello to?')
            }
          }
          steps {
            echo "Hello, ${PERSON}, nice to meet you."
          }
        }
        stage('build code') {
          steps {
            sh '''echo "build code start"
    sleep 10
    echo "build code finish"'''
          }
        }
        stage('stg deployment') {
          parallel {
            stage('deployment') {
              steps {
                timeout(time: 50, activity: true) {
                  sh '''echo "start deploy"
    sleep 60
    echo "deploy success"'''
                }
    
              }
            }
            stage('stg deployment1') {
              steps {
                sh '''echo "error deployment"
    exit 1
    echo "error deployment exit"'''
              }
            }
          }
        }
        stage('prd deployment') {
          steps {
            sh '''echo "start prd deployment "
    sleep 10
    echo "prd deployment success"'''
          }
        }
      }
    }
    
    

    执行工作流

    可以通过在Blue Ocean界面触发执行操作,如下:


    start-workflow

    参考文档

    https://jenkins.io/doc/book/pipeline/
    https://jenkins.io/doc/book/pipeline/syntax/
    https://jenkins.io/doc/book/pipeline/jenkinsfile/

    相关文章

      网友评论

        本文标题:Blue Ocean实现pipeline

        本文链接:https://www.haomeiwen.com/subject/nhbzbqtx.html