我有四个工作 - A,B,C,D
A-构建
B-测试
C-声纳分析
D-部署
我的情景 -
1-我需要创建一个管道 A-> B-&以及c
2-我需要创建其他管道 A-> B-> d
我的问题是 -
1-如果我选择“在其他项目上触发参数化构建”并在作业A下添加作业B,我就不能在第二种情况下使用作业A.
如何在不影响管道的情况下使用作业A。
答案 0 :(得分:2)
如果我正确理解了这个问题,那么您希望创建两个管道。在管道中,您可以使用阶段定义要构建的作业。
根据您的要求,您需要创建两个管道并根据需要定义阶段。 Trigger Parameterized builds on other projects
不适合您。
stage('Build A') {
build job: 'A' , parameters: <Give_your_own_parameters>
}
stage('Build B') {
build job: 'B' , parameters: <Give_your_own_parameters>
}
stage('Build C') {
build job: 'C' , parameters: <Give_your_own_parameters>
}
您还可以从正在构建的管道的Pipeline Syntax
部分中的Pipeline
获取语法。
答案 1 :(得分:0)
您可以通过创建A和B的重复项目来简化流程。在 New Item&gt;期间,可以轻松复制项目。从项目A中复制详细信息。
答案 2 :(得分:0)
由于一个简单的原因,这并不容易实现:您没有像使用它们那样使用Jenkins作业。
詹金斯的工作概念是工作是一系列行动。工作没有单一的责任,例如只是构建,只是测试或只是部署。在你的情况下,你应该有3个&#34;动作&#34;在工作,3&#34;行动&#34;在另一份工作中。
常见的方法是:
建立工作
部署工作
除非我在这里遗漏了一些东西,否则你不想在4个独立的工作中分开这些3/4的行动,因为这将是非常有效。例如,测试阶段和声纳分析应该在代码构建完成后运行,因此您希望共享相同的工作区以便能够测试构建的代码。
另一种 - 首选 - 方法是使用实际的Jenkins pipelines,即Groovy脚本,它允许您将步骤定义为函数,然后在您的&#34;构建工作&#34;和&#34;部署工作&#34;。
例如,您可以拥有包含构建/测试函数的functions.groovy:
<强> functions.groovy 强>
def build() {
// Build code here...
}
def test() {
// Test code here...
}
<强>集结job.groovy 强>
node {
def functions = load 'functions.groovy'
stage('Build') {
functions.build()
}
stage('Test') {
functions.test()
}
stage('Sonar Analysis') {
// Sonar analysis code...
}
}
<强>部署-job.groovy 强>
node {
def functions = load 'functions.groovy'
stage('Build') {
functions.build()
}
stage('Test') {
functions.test()
}
stage('Deploy') {
// Deploy code...
}
}