Blue Ocean实现pipeline

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选择你的项目路径,如:[email protected]: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)