Я предполагаю, что задание Y вызывается из вашего конвейера как задание нижестоящего уровня. Таким образом, где-то (вероятно, конец вашего конвейера) у вас будет:
build job: 'CloudbeeFolder1/Path/To/JobY', propagate: false, wait: false, parameters: [[$class: 'StringParameterValue', name: 'MY_PARAM', value: "${env.SOME_VALUE}"]]
Тогда в JobY на «другой стороне» у вас есть:
environment {
PARAM_FROM_PIPELINE = "${params.MY_PARAM}"
}
Получает значение вашего параметра в переменную окружения в JobY.
В зависимости от того, какие задачи вы можете выполнять в пакетном (или sh) файле, передавая PARAM_FROM_PIPELINE
примерно так:
stages {
stage("Do Tasks") {
steps {
bat "mybatchfile.bat ${env.PARAM_FROM_PIPELINE}"
}
}
}
Наконец, в mybatchfile.bat вы можете прочитать значение ${env.PARAM_FROM_PIPELINE}
примерно так:
@ECHO OFF
SET PARAM_VAL=%1
ECHO PARAM VALUE IS: %PARAM_VAL%
IF %PARAM_VAL% = "A" (
REM DO TASK1
) ELSE (
IF %PARAM_VAL% = "B" (
REM DO TASK2
) ELSE (
REM DO TASK3
)
)
Если вы не хотите инкапсулировать логику if-else в командный файл, вы можете использовать блок script {...}
в вашем Jenkinsfile, чтобы использовать сценарий конвейера.