我已经创建了一条jenkins管道来运行作业(例如,Pipeline A运行作业B)。在作业B中有多个参数。其中一个参数是具有多个不同选项的choice参数。我需要流水线A一次运行具有所有不同选择的作业B(流水线A在一个构建中运行具有所有不同选择的作业B)。我不太熟悉使用Jenkins声明性语法,但我猜我会使用某种for循环来迭代所有可用的选项?
我已经在Stack overflow/google上搜索并搜索了一个答案,但没有太多的运气。
发布于 2021-02-17 18:59:08
您可以在作业之外的共享库中的单独文件中定义这些选项:
// 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 {
...在Job 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的多次运行,每次都会使用不同的参数。
https://stackoverflow.com/questions/66234653
复制相似问题