Geo*_*Geo 4 jenkins pipelining
我正在运行管道作业,因此我们需要将参数传递给下游作业,但它不起作用。我们尝试如下:
管道作业:
node {
parameters {
choice(
name: 'OS',
choices:"Windows\nLinux\nMAC",
description: "Choose Environment to build!")
}
stage('Build') {
if("${params.Environment}" == 'Windows')
{
paramAValue = "${params.Environment}"
build job: 'QA-Test-Windows',parameters: [[$class: 'StringParameterValue', name: 'ParamA', value: "$paramAValue"]]
}
}
}
Run Code Online (Sandbox Code Playgroud)
QA-Test-Windows 是一项自由式工作,我们尝试按如下方式访问脚本中的参数,但它不起作用。
Write-output "OS selected for testing is ${params.ParamA}"
Write-output "OS selected for testing is ${ParamA}"
Run Code Online (Sandbox Code Playgroud)
尝试访问变量但它不起作用。任何人都可以帮我解决这个问题。我们尝试将 QA-Test-Windows 自由式作业创建为 Pipelinejob,但在此自由式中有很多构建步骤。
小智 9
在呼叫工作中:
pipeline {
agent any
parameters {
string(defaultValue: "123", description: 'This is a parameter', name: 'PARAMETER01')
}
stages {
stage('Start'){
steps{
build job: 'ANOTHER_JOB_NAME', wait: false, parameters: [string(name: 'HELLO', value: String.valueOf(PARAMETER01))]
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
第二份工作:
pipeline {
agent any
parameters {
string(defaultValue: "", description: 'K', name: 'HELLO')
}
stages {
stage('PrintParameter'){
steps{
sh 'echo ${HELLO}'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 4
我不确定您的代码到底出了什么问题,看起来有错误。也许您也需要将自己包裹"$paramAValue"
起来{}
。当你尝试运行下游工作时?
但是,根据你想要的,我刚刚测试了这个工作解决方案:
我有两个管道工作(上游和下游):
下游作业具有带名称的参数OS
上游作业有选择参数PickAnOS
并且有上游作业的工作管道脚本,它使用选定的参数运行下游作业
pipeline {
agent any
parameters {
choice(choices: ['Windows', 'Linux'], description: 'What OS?', name: 'PickAnOS')
}
stages {
stage("run downstream job") {
steps {
echo "You choose: ${params.PickAnOS}"
build job: 'downstream_job', parameters: [string(name: 'OS', value: "${params.PickAnOS}")]
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望这有助于编辑:修复了詹金斯引号上的一个小错误,即“”与“”有区别。
归档时间: |
|
查看次数: |
50375 次 |
最近记录: |