【问题标题】:How to use multiple choices to run a job?如何使用多项选择来运行作业?
【发布时间】:2021-02-17 01:45:13
【问题描述】:

我创建了一个 jenkins 管道来运行作业(例如,管道 A 运行作业 B)。在作业 B 中有多个参数。其中一个参数是具有多个不同选择的选择参数。我需要管道 A 来一次运行具有所有不同选择的作业 B(管道 A 在一个构建中运行具有所有不同选择的作业 B)。我不太熟悉使用 Jenkins 声明式语法,但我猜我会使用某种 for 循环来迭代所有可用的选项?

我已经通过 Stack overflow/google 搜索并搜索了答案,但运气不佳。

【问题讨论】:

  • 你看过Pipeline Matrix吗?不确定这是否是您需要的,但对我来说,它看起来像是您正在做的事情的替代方案。

标签: jenkins groovy jenkins-pipeline jenkins-groovy


【解决方案1】:

您可以在共享库中的作业之外的单独文件中定义选项:

// vars/choices.groovy

def my_choices = [
    "Option A",
    "Option B", // etc.
]

然后您可以在定义作业时使用这些选项:

// Job_1 Jenkinsfile

@Library('my-shared@master') _ 

properties([
    parameters([

        [$class: 'ChoiceParameterDefinition',
            name: 'MY_IMPORTANT_OPTION',
            choices: choices.my_choices as List,
            description: '',
        ],
...

pipeline {
    agent { any }

    stages {
...

在作业 2 中,您可以迭代值:

// Job_2 Jenkinsfile

@Library('my-shared@master') _ 

pipeline {
  agent { any }

  stages {
    stage {
      for (String option : choices.my_choices) {
        build job: "Job_1", 
          wait: false, 
          parameters: [ string(name: 'MY_IMPORTANT_OPTION', value: option) , // etc.
          ]

Job_2 在运行时会异步触发 Job_1 的多次运行,每次使用不同的参数。

【讨论】:

    猜你喜欢
    • 2022-07-05
    • 2017-01-31
    • 1970-01-01
    • 2021-01-15
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多