2017-10-16 70 views
0

我是一种新的詹金斯,我想为下面的情况设置詹金斯触发器,projA或projB的成功构建应该触发构建projC,我使用声明式Jenkins语法,projA..C是多分支项目。詹金斯 - 触发多个上游变化的多分支管道

projA - > projC projB - > projC

我遵循的#2的例子从Jenkins: Trigger Multi-branch pipeline on upstream change和设置projC要在projA(或projB)引发的,但不能确定语法projC是触发projA或projB。

另外,是否可以将projA和projB的值作为触发机制的一部分传递给projC?如果可能,什么是语法。

任何帮助表示赞赏。

这是代码:

pipeline { 
    agent any 

    parameters { 
     string(name: 'MY_BRANCH_NAME', defaultValue: '${env.BRANCH_NAME}', description: 'pass branch value') 
     string(name: 'MY_VERSION', defaultValue: '1.23', description: 'My version') 
    } 

    stages { 
     stage('Build in dev') { 
      steps { 
       echo 'Building dev..' 
      } 
     } 
    } 
} 
+0

向我们展示您使用的管道代码。 –

+0

我的管道相当通用的,这里是骨架管道{ 代理的任何 参数{ 字符串(名称:“MY_BRANCH_NAME”,默认值:“$ {} env.BRANCH_NAME”,说明:“通支路值”) 串(名称: 'MY_VERSION',默认值: '1.23',说明: '我的版本') } 阶段{ 阶段( '建立在开发'){ 步骤{ 回声 '建设开发..' } } } }抱歉格式。 – tonywl

回答

0

我认为你需要看看这个从周围的其他方法。不要想到C在寻找A或B来完成。想想A或B如果成功就触发C.

在你和B类项目,如果你考虑构建由无论你的标准是成功的,使用build步骤触发C.

如果你想简单的值传递给C,使C一参数化构建并在构建步骤中传递参数。

post{ 
    success{ 
     build job: 'C', parameters: [booleanParam(name: 'bool1', value: true), string(name: 'foo', value: 'bar')], quietPeriod: 10 
    } 
} 
+0

我一直在寻找基于多个上游项目的触发语法示例,但我认为这会起作用。我没有找到关于“构建”或“触发器”的声明语法的文档。任何指针?谢谢。 – tonywl

+0

在此处查找构建步骤。 https://jenkins.io/doc/pipeline/steps/。寻找“Pipeline build Step插件”。触发器在这里:https://jenkins.io/doc/book/pipeline/syntax/#triggers –

+0

当我指定我的一个项目名称作为值时,我得到Jenkins的“等待非工作项不被支持” '工作',例如建立作业:'test3',参数:...,这是否意味着Jenkins找不到test3作为项目? – tonywl