代码之家  ›  专栏  ›  技术社区  ›  mmaceachran

詹金斯管道公司在嘘

  •  1
  • mmaceachran  · 技术社区  · 7 年前

    在詹金斯,我有一个pipleline构建,那不是沙盒。我有一个目录结构,我试图遍历它并发布一个npm,但是我认为这个循环,或者npm与我的问题无关。

    Jenkis似乎只是简单地退出了我的“嘘”脚本。例如,我有这个:

    echo "Starting scripts"
    sh "cd ${directory}/; npm version 1.0.${version}; npm publish --registry http://artifactorypro.me.com/artifactory/api/npm/npm/; cd ..; "
    echo "Finished"
    

    而在控制台输出中,我看到了“开始脚本”,工件被正确地发布了,但是我没有看到“完成”的回声,并且构建干净地退出。我甚至可以把它分解为:

    echo "Starting scripts"
    sh "cd ${directory}/;"
    echo "In direcotry"
    sh "npm version 1.0.${version}; npm publish --registry http://artifactorypro.me.com/artifactory/api/npm/npm/;"
    echo "artifact published"
    sh "cd ../..; "
    echo "Finished"
    

    我得到了“开始脚本”,然后是“+cd mydirectory/”,但没有“In directory”,这都是一个循环,我知道长度>1,但它永远不会到达。在第一声“嘘”之后就结束了

    这里发生了什么事?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Ravindranath Barathy    7 年前

    如图所示,可以使用以下命令在sh步骤中链接多个命令:

    • && : sh "cd ${directory}/ && echo "In directory" && npm version ..."
    • sh '''

    最后一个更具可读性:

    sh """         cd ${directory}/
             npm version 1.0.${version}
             npm publish --registry http://artifactorypro.me.com/artifactory/api/npm/npm/ 
             cd ..
    """