J'exécute un travail de pipeline et avec cela, nous devons passer un paramètre à un travail en aval, mais cela ne fonctionne pas. Nous avons essayé comme suit:
EMPLOI Pipeline:
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"]]
}
}
}
QA-Test-Windows est un travail de style libre et en ce sens que nous avons essayé d'accéder au paramètre dans le script comme suit, mais cela ne fonctionne pas.
Write-output "OS selected for testing is ${params.ParamA}"
Write-output "OS selected for testing is ${ParamA}"
J'ai essayé d'accéder aux variables mais ça ne fonctionne pas. Quelqu'un peut-il m'aider à ce sujet? Nous avons essayé de créer un travail freestyle QA-Test-Windows en tant que Pipelinejob mais dans ce freestyle il y a beaucoup d'étapes de construction.
SUR LE TRAVAIL APPELANT:
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))]
}
}
}
}
SUR LE DEUXIÈME TRAVAIL:
pipeline {
agent any
parameters {
string(defaultValue: "", description: 'K', name: 'HELLO')
}
stages {
stage('PrintParameter'){
steps{
sh 'echo ${HELLO}'
}
}
}
}
Je ne sais pas exactement ce qui ne va pas dans votre code, il semble qu'il y ait une erreur. Vous devez peut-être envelopper votre "$paramAValue"
en {}
aussi. lorsque vous essayez d'exécuter un travail en aval?
Mais, selon ce que vous voulez, je viens de tester cette solution de travail:
J'ai deux emplois de pipeline (en amont et en aval):
Le travail en aval a un paramètre avec le nom OS
Le travail en amont a le paramètre de choix PickAnOS
et il existe un script de pipeline de travail pour le travail en amont, qui exécute le travail en aval avec le paramètre sélectionné
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}')]
}
}
}
}
J'espère que ça aide