使用Jenkins Pipeline脚本和matrix
语法,我可以为一个轴添加多个值,因此多个作业可以运行,并且可以使用该值来拉入ENV文件。
但是,有时我可能只想为一个或两个轴值运行作业。
我想我需要使用extendedChoice
参数,它将提供一个复选框列表,但我在网上找不到任何关于如何将其插入到管道脚本的matrix
部分的信息。
这里有一个例子,我到目前为止
agent none
parameters {
extendedChoice multiSelectDelimiter: ',', name: 'CLIENT', quoteValue: false, saveJSONParameterToFile: false, type: 'PT_CHECKBOX', value: 'client1,client2,client3', visibleItemCount: 20
gitParameter branchFilter: 'origin/(.*)', defaultValue: 'develop', name: 'BRANCH', type: 'PT_BRANCH'
}
stages {
stage('Build') {
matrix {
agent any
axes {
axis {
name 'CLIENT'
values 'client1', 'client2', 'client3'
}
}
stages {
stage('Running job') {
steps {
echo "Job running for ${CLIENT}"
}
}
stage('Checkout') {
steps {
git branch: "${params.BRANCH}", url: 'git@github.com:my-username/jenkins-pipeline-test.git', credentialsId: 'Jenkins EC2'
}
}
}
}
}
}
}
这个脚本允许我从我的仓库中选择一个分支,但是目前extendedChoice
提供的复选框列表没有做任何事情,并且作业为每个“客户端”运行3次
1条答案
按热度按时间aoyhnmkz1#
使用轴值的变量是一个功能请求,尚未实现:
因此,不可能使用变量来设置轴值。
选项
1.派生official plugin并添加特性。我学了很多jenkins做这个
1.使用此插件Jenkins Dynamic Axis Plugin
1.在每个阶段,验证是否在choice参数中选择了client,如果不匹配,则跳过执行
选项三:跳过阶段执行
使用when step可以跳过阶段执行
如果选择client2,则将看到只执行client1和client2