繁体   English   中英

当我从上游作业触发时,无法使用Jenkins下游作业当前参数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM