jenkinsfile:从另一个脚本传递env

xdnvmnnf  于 2021-07-09  发布在  Java
关注(0)|答案(0)|浏览(210)

考虑一个包含两个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 }? 从这篇文章中找到了节点

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题