【问题标题】:Fail/pass Jenkins job by email notification通过电子邮件通知失败/通过 Jenkins 作业
【发布时间】:2015-10-05 20:23:56
【问题描述】:

我们有一个用于创建生产构建的公司内部系统,我需要创建一个 Jenkins 作业来自动化这些构建。

有一种方法可以自动启动生产构建。但您只能通过电子邮件通知了解构建的结果。此外,您只能使用您的个人域凭据订阅通知,即您用于登录计算机的相同登录名/密码(并且密码每个月都会更改)。

因此,现在,Jenkins 作业在构建启动时被视为“通过”,而不是在它实际完成时。

我想知道如何让詹金斯在给定的限制下通过/失败。

另外,我想避免:

  • 在任何地方硬编码我的个人凭据,
  • 取决于我或其他人的个人计算机是否打开。

想法?

【问题讨论】:

  • 您启动的构建类型是什么?你如何启动它们?我假设你启动它们的机器不是 Jenkins 奴隶,对吧?
  • @GeroldBroser,你是对的,实际上我只是在远程机器上启动了一些 .bat 文件。最终结果是内部 npm 注册表中库的新版本。
  • .bat 文件中调用的程序是否根据它们的成功或失败设置ERRORLEVEL?或者您可以调整文件以进行相应的设置吗?
  • .bat 文件中的程序退出太早 - 一旦它们开始(或失败)构建过程。
  • 这不是“太早”的问题,而是他们是否在退出时返回状态码的问题。如果您在 .bat 文件中的程序调用之后立即添加 echo %errorlevel% 会显示什么?

标签: email jenkins automation continuous-integration continuous-delivery


【解决方案1】:

我不知道有任何 Jenkins 插件能够接收电子邮件。

如果您可以设法将通知的内容存储在一个文件中,您可以使用 Text-finder Plugin 在定期运行的附加监控作业的构建后操作中。

也看看Monitoring external jobs,这是否对你有用。

更新:

实际上有一个插件可以接收电子邮件:poll-mailbox-trigger-plugin。安装它并执行以下操作:

  • 创建一个新的 Freestyle 项目,命名为 e.g. 构建状态邮件监视器

    • 构建触发器 → [✔] [投票邮箱触发器] - 投票电子邮件收件箱

      • 按需配置
    • 构建添加构建步骤执行 Groovy 脚本

      • ◉ Groovy 命令:添加代码以更改构建启动器作业的状态

【讨论】:

  • 不幸的是,Text-finder Plugin 似乎无法“等待”结果出现。在我的情况下,它可能在发布和通知之前最多 20 分钟。
  • @GeorgiyIvankin 这就是为什么我写了“一个定期运行的额外监控作业”——例如每 20 分钟一次。
  • 我现在明白了。但是对于一个构建将启动太多这样的工作 - 很难说哪个工作与哪个构建相关。如果还没有结果怎么办?失败?还是通过?太模棱两可了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多