带有jenkins -heroku的Heroku在jenkins中未被识别为内部或外部命令,未收到电子邮件

时间:2017-10-26 06:17:18

标签: heroku jenkins deployment jenkins-pipeline

我有以下管道脚本,我已经写过假设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 所以任何帮助都会很棒!

1 个答案:

答案 0 :(得分:1)

你做了一个错误的假设,如果你可以在shell中运行命令,那么Jenkins将能够。您必须以与jenkins使用的完全相同的ID运行它,并使用完全相同的环境设置。特别是在Linux中,根据您是在交互式登录还是执行程序,来源不同的文件。

使用构建中的bat命令来研究发生了什么。查看PATH,找到命令等。