2016-12-14 131 views
1

我有以下sh步骤执行对詹金斯管道某些命令,注意npm installpackage.json用于安装凉亭后命令工作詹金斯管道SH步节点

sh """ 
    . .env/bin/activate 
    . ${JENKINS_HOME}/nvm_init.sh 
    npm install 
    node --version 
    which node 
    echo $PATH 
    export PATH=\$(npm bin):$PATH 
    echo $PATH 
    which bower 
    which node 
    node --version 
    bower install 
    """ 

输出从npm install如下开始:

+ npm install 
npm WARN [email protected] No repository field. 
npm WARN [email protected] No license field. 
+ node --version 
v6.9.2 
+ which node 
/data/jenkins/.nvm/versions/node/v6.9.2/bin/node 
+ echo /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin 
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin 
+ npm bin 
+ export PATH=/data/jenkins/workspace/GoConnect_feature_jenkins2-KGJYBCCDJPBPOLJ2K2Q4JVQP6TKHIVKXYDJZ4WUMFHTSSDIZWCAQ/node_modules/.bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin 
+ echo /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin 
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin 
+ which bower 
/data/jenkins/workspace/GoConnect_feature_jenkins2-KGJYBCCDJPBPOLJ2K2Q4JVQP6TKHIVKXYDJZ4WUMFHTSSDIZWCAQ/node_modules/.bin/bower 
+ which node 
[Pipeline] } 
[Pipeline] // stage 
[Pipeline] } 
[Pipeline] // node 
[Pipeline] End of Pipeline 
ERROR: script returned exit code 1 

这里是一对夫妇的事情,我不明白:

  1. 通知第二echo $PATH,它具有相同的路径之前,并没有包含来自export PATH=\$(npm bin):$PATH
  2. 之前的前置最后which node没有工作,为什么?

回答

2

感谢同事@ john-carter指出,在不逃避美元符号的情况下,groovy会在执行剧本之前评估。

sh """ 
. .env/bin/activate 
. ${JENKINS_HOME}/nvm_init.sh 
npm install 
node --version 
which node 
echo $PATH 
export PATH=\$(npm bin):\$PATH 
echo $PATH 
which bower 
which node 
node --version 
bower install 
"""