3

我在monorepo中有两个工件:前端和后端。如何使用带monorepo的jenkins多分支管道

my-project 
    frontend 
    Jenkinsfile 
    backend 
    Jenkinsfile 

我想用蓝海和多分支管道,但有没有使用两个Jenkinsfile和两个管道的方法吗? Afaik,Jenkinsfile需要在回购的根源。否则,我将使用经典的管道,但是我需要为每个新的分支创建一个新的管道,这很痛苦。

+1

这可能会解决你的问题,但我很好奇什么_internal document_说https://issues.jenkins-ci.org/browse/JENKINS-43749 – dag

回答

0

创建两条多分支管道: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 
} 

现在你的单身Jenkinsfile将决定哪个管道作业构建它,然后运行正确的管道。

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

没有使用蓝色海洋,我不确定这些管道可视化的效果如何。

相关问题