Jenkins参数无法在命令行中识别

时间:2019-12-18 14:55:13

标签: node.js jenkins environment-variables jenkins-pipeline

我想使用NodeJS,Github和Jenkins创建一个简单的作业。 在两个服务器地址上运行的交换是: 例如us.exchange.com和eu.exchange.com。 我创建了一个名为SERVERS_LOCATION的环境变量,

browser.get(`http://${process.env.SERVERS_LOCATION}.exchange.com`);

,还有一个名为SERVERS_LOCATION_JEN的Jenkins参数,可能有两个选择-美国和欧盟。

我还在Jenkins中创建了一个管道,在其中我要通过选择一个或另一个选项来运行参数化的构建,为此,我在 jenkinsfile 中使用管道脚本,如下所示:

pipeline{
    agent any    
    options{
        disableConcurrentBuilds()
    }

    stages{
        stage("install npm"){
            steps{                
                bat "npm install"                
                bat "npx webdriver-manager update --versions.chrome 76.0.3809.68"                
            }            
        }

        stage("executing job"){
            steps{
                bat "SERVERS_LOCATION=%SERVERS_LOCATION_JEN% npx protractor config/conf.js"                           
            }            
        }
    }    
}

主要思想是从Jenkins变量SERVERS_LOCATION_JEN中获取选择的值,并将其放入环境变量$ {process.env.SERVERS_LOCATION}中,该变量可在代码中用于后续调用。

但是当我运行此作业时,出现错误:

'SERVERS_LOCATION' is not recognized as an internal or external command,operable program or batch file.

P.S。从git-bash运行该工作正常。 (Win10 Chrome浏览器)

您能指出我做错了什么吗?

1 个答案:

答案 0 :(得分:0)

您必须使用“ set ”命令为变量批量分配值,因此请使用以下代码:-

bat "set SERVERS_LOCATION=%SERVERS_LOCATION_JEN% npx protractor config/conf.js"