我有一个相当复杂的Jenkins工作,它构建,单元测试和打包Web应用程序.根据具体情况,一旦这项工作完成,我想做不同的事情.我没有找到可重用/可维护的方法来做到这一点.是真的如此,还是我错过了什么?
我复杂的工作完成后我想要的选项:
没做什么
启动我的低风险更改构建管道:
启动我的高风险更改构建管道:
我还没有找到一个简单的方法来做到这一点.最简单但不易维护的方法是制作三个独立的工作,每个工作都会启动下游构建.这种方法让我害怕有几个原因,包括必须在三个地方而不是一个地方进行变更.此外,许多下游工作也几乎相同.唯一的区别是他们称之为下游工作.工作的激增似乎会导致无法维持的混乱局面.
我已经考虑过使用几种方法将其作为一项工作,但到目前为止还没有工作:
使工作成为一个多配置项目(https://wiki.jenkins-ci.org/display/JENKINS/Building+a+matrix+project).这提供了一种使用参数注入作业的方法.我还没有找到一种方法让"构建其他项目"步骤响应参数.
使用Parameterized-Trigger插件(https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin).此插件允许您根据特定触发器触发下游作业.但是触发器似乎限制性太强.它们都是基于构建的状态,而不是任意变量.我没有看到这里提供的任何选项适用于我的用例.
使用Flexible Publish插件(https://wiki.jenkins-ci.org/display/JENKINS/Flexible+Publish+Plugin).这个插件与参数化触发器插件有相反的问题.它有许多有用的条件可以检查,但它看起来不像它可以开始构建另一个项目.它的行动仅限于发布类型的活动.
使用Flexible Publish + Any Build Step插件(https://wiki.jenkins-ci.org/display/JENKINS/Any+Build+Step+Plugin).Any Build Step插件允许任何构建操作可用于Flexible Publish插件.虽然此插件激活后可以使用更多操作,但这些操作不包括"构建其他项目".
真的没有一个简单的方法吗?我很惊讶我没有找到它,甚至更惊讶我没有真正看到任何其他人试图这样做?我做的事情不寻常吗?有什么明显的东西让我失踪吗?
jenkins ×1