如何使用jenkins multibranch管道和monorepo

时间:2017-04-25 14:48:16

标签: jenkins jenkins-pipeline multibranch-pipeline jenkins-blueocean

我在monorepo中有一个带有2个工件的项目:一个前端和一个后端。

my-project
  frontend
    Jenkinsfile
  backend
    Jenkinsfile

我想使用Blue Ocean和multibranch管道,但是有没有办法使用两个Jenkinsfile和两个管道? Afaik,Jenkinsfile需要成为回购的根源。

否则,我将使用经典管道,但我需要为每个新分支创建一个新管道,这很痛苦。

1 个答案:

答案 0 :(得分:1)

创建两个multibranch-pipelines:MyProjectFrontEnd和MyProjectBackEnd。

然后在Jenkinsfile中你有以下

#!/usr/bin/env groovy
// Get MyProjectFrontEnd from MyProjectFrontEnd/master
switch(env.JOB_NAME.split("/")[0])
{
  case 'MyProjectFrontEnd':
    project = 'front'
    break
  case 'MyProjectBackEnd':
    project = 'back'
    break
  default
    project = ''
    break
}

if (project == 'front') {
  // Place your build steps here for front
}

if (project == 'back') {
  // Place your build steps here for back
}

现在,您的单个Jenkins文件将确定构建它的哪个管道作业,然后运行正确的管道。

或者,您可以创建一个管道,只需在交换机中实例化正确的变量,即可构建正确的工件。

没有使用Blue Ocean,我不确定这些管道的可视化程度。