我有以下管道脚本,我已经写过假设cmd上的命令是否有效它应该在管道脚本上做同样的事情(这是错误的)
node{
stage "CI"
git 'https://github.com/NaveenDK/mentalshortcuts.git'
bat "npm install"
}
def notify(status){
emailext (
to: "ddd@dd.com",
subject: "${status}: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
body: """<p>${status}: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>
<p>Check console output at <a href='${env.BUILD_URL}'>${env.JOB_NAME} [${env.BUILD_NUMBER}]</a></p>""",
)
}
node {
notify("Deploy to staging?")
}
input 'Deploy to Staging?'
node {
stage "deploy to staging"
bat "heroku git:remote -a blooming-tor-31315"
bat "git push heroku master"
}
即使部署在我使用上述脚本并构建jenkins作业时在命令提示符下正常工作,我在控制台输出中得到的是“heroku不被识别为......”
即使控制台说“向...发送电子邮件”,我也不会收到该电子邮件。 我已在配置设置中填写了“扩展电子邮件通知”部分 如下: SMTP:smtp.gmail.com SSL已检查,端口为465 所以任何帮助都会很棒!
答案 0 :(得分:1)
你做了一个错误的假设,如果你可以在shell中运行命令,那么Jenkins将能够。您必须以与jenkins使用的完全相同的ID运行它,并使用完全相同的环境设置。特别是在Linux中,根据您是在交互式登录还是执行程序,来源不同的文件。
使用构建中的bat命令来研究发生了什么。查看PATH,找到命令等。