jenkins使用Blue Ocean设计pipeline脚本

2023/09 作者:ihunter 0 0

Blue Ocean是pipeline的可视化ui,可以通过图形ui设计pipeline脚本;另外,不足之处是不支持中文

先在gitlab创建一个项目,必须是空项目(连README文件也不能有),项目名称这里命名为pipeline


安装插件Blue Ocean后,jenkins首页左侧可以看到Blue Ocean 


第一次会进入如下界面


或者会进入下图,然后创建流水线


选择“Git”


输入刚刚在gitlab创建的项目的地址,然后把SSH key添加到gitlab中,最后点击“创建流水线”


进入如下界面,可以开始设计流水线


一般来说,我们在这里设计好流水线的骨架,然后再在vscode等编辑器中完善丰富pipeline内容;当然,你也可以在Blue Ocean中完善pipeline脚本

说明:由于资源不足,暂未加入sonarqube等


设计完成后,Ctrl + s,生成pipeline脚本


可以复制出来,然后在其它编辑器继续完善

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
pipeline {
  agent any
  stages {
    stage('pull project code') {
      parallel {
        stage('ui build') {
          steps {
            sh 'echo 1'
          }
        }
        stage('trigger build') {
          steps {
            sh 'echo 1'
          }
        }
      }
    }
    stage('mvn package') {
      steps {
        sh 'echo 1'
      }
    }
    stage('build and push image') {
      steps {
        sh 'echo 1'
      }
    }
    stage('deploy to k8s') {
      steps {
        sh 'echo 1'
      }
    }
    stage('pull autotest code') {
      steps {
        sh 'echo 1'
      }
    }
    stage('run autotest') {
      steps {
        sh 'echo 1'
      }
    }
    stage('allure report') {
      steps {
        sh 'echo 1'
      }
    }
  }
}

比如,最后一个stage,完善后大概是这样

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
stage("allure report"){
  steps{
    sh """
      echo '=================开始生成测试报告'
    """
    allure(
      includeProperties: false,
      jdk: '',
      results: [[path: 'target/allure-results']]
    )
  }
  post {
    success {
      dingtalk (
        robot:'dd01',
        type:'MARKDOWN',
        atAll: true,
        title: "notice: 自动化测试报告已生成,全部通过",
        text: ["#### '${JOB_NAME}'项目自动化测试报告已生成,全部通过\n - 构建:第'${BUILD_NUMBER}'次\n - 状态:'${currentBuild.result}'\n - [查看本次测试报告](${BUILD_URL}allure)"]
      )
    }
    unstable {
      dingtalk (
        robot:'dd01',
        type:'MARKDOWN',
        atAll: true,
        title: "notice: 自动化测试报告已生成,有未通过的",
        text: ["#### '${JOB_NAME}'项目自动化测试报告已生成,有未通过的\n - 构建:第'${BUILD_NUMBER}'次\n - 状态:'${currentBuild.result}'\n - [查看本次测试报告](${BUILD_URL}allure)"]
      )
    }
    failure {
      dingtalk (
        robot:'dd01',
        type:'MARKDOWN',
        atAll: true,
        title: "notice: 自动化测试报告生成出错",
        text: ["#### '${JOB_NAME}'项目自动化测试报告生成出错\n - 构建:第'${BUILD_NUMBER}'次\n - 状态:'${currentBuild.result}'\n - [查看本次构建详情](${BUILD_URL})"]
      )
    }
  }
}

此时,我们也可以保存

点击“Save & run”


报错


但是,我们的pipeline脚本是成功push到了gitlab的(这大概是Blue Ocean的一个bug),同时可以看到,文件名称是Jenkinsfile


可以点击文件查看内容,就是我们刚刚设计的pipeline骨架




赞(0) 更多分享

上篇: jenkins多分支流水线构建
下篇: 八个优秀开源DevOps工具