[英]Can't use Jenkins downstream job current parameters when i trigger it from upstream job
我有一个使用uno-choice动态选择参数参数化的作业触发器(上游作业),以触发多个作业(下游作业)。
触发作业参数:
我正在使用这个脚本,使用后期构建操作触发选定的作业 - > groovy post build :
// param list of jobs to execute coming from upastream Job
def upstreamParam = "JOB_LIST_TRIGGER"
def upstreamParamFlag = "NEXT_RELEASE_TYPE"
def resolver = manager.build.buildVariableResolver
def JOBS_TO_EXECUTE = resolver.resolve(upstreamParam)
def FLAG = resolver.resolve(upstreamParamFlag )
def viewName = "test"
def jobsName = []
//only the NEXT RELEASE TYPE
def params = new hudson.model.StringParameterValue('NEXT_RELEASE_TYPE_BIS', FLAG)
// if no job selected in the parameter, will trigger all jobs in the view "test", otherwise will execute only selected jobs
if (JOBS_TO_EXECUTE == null || JOBS_TO_EXECUTE == ''){
// retrieve jobs names from jenkins view
hudson.model.Hudson.instance.getView(viewName).items.each() {
jobsName.push(it.getDisplayName())
}
// launch plugins jobs
jobsName.each(){
job = manager.hudson.getItem(it)
cause = new hudson.model.Cause.UpstreamCause(manager.build)
def paramsAction = new hudson.model.ParametersAction(params)
causeAction = new hudson.model.CauseAction(cause)
manager.hudson.queue.schedule(job, 0, causeAction, paramsAction)
}
}else{
// create a list of selected jobs in the JOB_LIST_TRIGGER param
hudson.model.Hudson.instance.getView(viewName).items.each() {
if (JOBS_TO_EXECUTE.contains(it.getDisplayName())){
jobsName.push(it.getDisplayName())
}
}
// launch only job selected in the JOB_LIST_TRIGGER param
jobsName.each(){
job = manager.hudson.getItem(it)
cause = new hudson.model.Cause.UpstreamCause(manager.build)
def paramsAction = new hudson.model.ParametersAction(params)
causeAction = new hudson.model.CauseAction(cause)
manager.hudson.queue.schedule(job, 0, causeAction, paramsAction)
}
}
在此代码中,我只触发NEXT_RELEASE_PARAMETER到下游作业。
job1..job4,以下详细信息显示当前的工作详细信息。
echo "------------------------------------------------"
echo "------------------------------------------------"
# the current param
echo $RELEASE_VERSION
echo "------------------------------------------------"
echo "------------------------------------------------"
# the current param
echo $NEXT_RELEASE_TYPE
echo "------------------------------------------------"
echo "------------------------------------------------"
# the upstream param
echo $NEXT_RELEASE_TYPE_BIS
echo "------------------------------------------------"
echo "------------------------------------------------"
# the current param
echo $NEXT_RELEASE
echo "------------------------------------------------"
echo "------------------------------------------------"
输出是:
+ echo ------------------------------------------------
------------------------------------------------
+ echo
+ echo ------------------------------------------------
------------------------------------------------
+ echo ------------------------------------------------
------------------------------------------------
+ echo
+ echo ------------------------------------------------
------------------------------------------------
+ echo ------------------------------------------------
------------------------------------------------
+ echo Major
Major
+ echo ------------------------------------------------
------------------------------------------------
+ echo ------------------------------------------------
------------------------------------------------
+ echo
+ echo ------------------------------------------------
------------------------------------------------
+ echo ------------------------------------------------
------------------------------------------------
结果只打印上游参数但不打印当前参数,所以有没有办法在job-trigger触发后获取下游(job1..job4)当前参数?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.