Jenkins触发器调用/在其他项目上构建插件,不评估我的env var



在我的Jenkins工作中,我有一个"执行shell部分",我在其中声明新变量并向其添加值,例如installdir=/work/homes/x"。

在这一部分之后,我有一个"触发器调用/在其他项目上构建"部分。我正在调用另一个项目,我想将这个installdir作为预定义的参数发送给它。我已经打开了"当前构建参数"one_answers"预定义参数"。在预定义的参数中,我给出了install_dir=$installdir。

但它并没有对此进行评估。如何让它评估这个installdir变量。

仅供参考:我必须根据用户输入将这个installdir设置为不同的路径。所以execute shell是我唯一能做到这一点的地方。

您应该使用参数化触发器插件:https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+触发器+插件

更新:有关信息,请参阅注释线程,参数化触发器插件不适用于此特定用例。

您可以使用传递给参数化触发器插件的生成的属性文件来评估触发作业的参数。例如:

  1. 创建字符串参数:

    • 名称:TRIGGER_JOB
    • 默认值:my_git_project
  2. 创建多字符串参数:

    • 名称:TRIGGER_JOB_PARAMS

    • 默认值:

      # Pass parameters to the triggered job with evaluated variables:
      GIT_PULL_BRANCH=${GIT_PULL_BRANCH}
      EMAIL_LIST=${EMAIL_LIST}
      
  3. 添加一个条件步骤(仅在请求时用于触发下一个作业):

    • 类型:执行shell

      # Will run TRIGGER_JOB (with TRIGGER_JOB_PARAMS) unless the value is empty:
      [[ -n "${TRIGGER_JOB}" ]] && 
      echo -e "${TRIGGER_JOB_PARAMS}" > TRIGGER_JOB_PARAMS.PROPERTIES
      
    • 条件满足时运行的步骤:

      • 触发器/调用基于其他项目:
        • 要构建的项目:${TRIGGER_JOB}

        • 属性文件中的参数:TRIGGER_JOB_PARAMS.PROPERTIES

最新更新