Jenkins按顺序运行工作,也是特定的

时间:2016-08-30 09:09:11

标签: jenkins jenkins-plugins

我有4个Jenkins工作:ABCD,当它们全部运行时应按该顺序运行。
我使用参数化触发器插件设置顺序序列和管道插件来观察流程但我仍然希望能够:

1. Run only Job A
2. Run only jobs B and D
3. Run from job A ( according to sequence )
4. Run from job C ( according to sequence )

项目1可以从特定作业运行,
项目3和4可以从管道视图运行(有更好的方法吗?)
但是第2项呢?

目前我有这4个工作,但将来我可能会有更多的工作,这意味着更多的组合,所以我正在寻找一个通用的解决方案,并避免为我可能需要的每个组合编写代码。

P.S。有没有办法让一个地方运行我写的每个项目,而没有不同的方式来运行它们中的每一个?

2 个答案:

答案 0 :(得分:0)

您可以使用Multijob Plugin创建 Multijob (例如Run all),在 MultiJob阶段中添加其他4个作业。要按顺序运行它们,您必须将作业执行类型配置为以相等方式运行阶段作业

您可以为添加这些作业所需的每个序列创建一个MultiJob(Run B and D)。

答案 1 :(得分:0)

使用管道我会亲自做一些不同的事情:我将这四个步骤定义为管道功能,而不是A B CD个工作,例如:

<强> functions.groovy

def A() {
  stage "A"
  // doAjob
}

def B() {
  stage "B"
  // doBjob
}

...

然后我会为您的每个“商品”1 2 34创建一份工作,因此您的商品2将如下所示:

<强> jobItem2.groovy

node() {
  def functions = load 'functions.groovy'
  // Now just call declared functions
  functions.B()
  functions.D()
}

等等。

当然,您可以将A(可以单独启动)声明为特定作业并混合作业和功能。通过这样的混合,你的item3可能如下所示:

<强> jobItem3.groovy

node() {
  // Call A as a job
  build 'A'

  // Call other steps as functions
  def functions = load 'functions.groovy'
  // Now just call declared functions
  functions.B()
  functions.C()
  functions.D()
}