考虑一个包含两个jenkins文件的文件夹, JenkinsfileA
以及 JenkinsfileB
.
# JenkinsfileA
node {
environment {
APP_NAME = 'APPLICATION_A'
# Load the other jenkins file
load `JenkinsfileB'
}
# JenkinsfileB
node{
echo "Got parameter $APP_NAME"
stage ('do something'){
echo 'doing something'
}
}
在b中 $APP_NAME
参数为空。什么是通行证 APP_NAME
参数从a到b?我应该用吗 load
这儿还是别的什么?是环境变量。还是我们可以利用 parameters
不知怎么的?
更新
我想原因是 env
对我不起作用是因为Jenkins在一个完全不同的工作空间里做第二份工作。我想这样做:
load 'JenkinsfileB', parameters: [[$class: 'StringParameterValue', name: 'MYPARAM', value: "some-value" ]]
但不断出错
java.lang.IllegalArgumentException: Expected named arguments but got [{parameters=[{$class=StringParameterValue, name=MYPARAM, value=some-value}]}, JenkinsfileB]
当我尝试使用 build job
语法而不是 load
这个版本甚至找不到jenkinsfileb,所以我被难住了。
未读:是 node
仍然是用于确保生成在任何代理上运行的正确指令,或者我应该使用 pipeline{ agent: any
}? 从这篇文章中找到了节点
暂无答案!
目前还没有任何答案,快来回答吧!