代码之家  ›  专栏  ›  技术社区  ›  Michael Lafayette

如何在Java代码中以编程方式获得最后提交?詹金斯/SBT

  •  -1
  • Michael Lafayette  · 技术社区  · 6 年前

    我开始写一个小工具,基本上可以做一些事情(例如编译或测试代码),然后发送电子邮件,如果它失败了。

    https://github.com/JohnReedLOL/EmailTestingBot

    我想添加一个功能,这个工具可以通过编程查看工作目录中的最后一个提交,查看提交的作者,提取他们的电子邮件,然后向此人发送电子邮件,无论他们的提交是导致通过还是失败。

    例如,我想让它做如下事情: Git: See my last commit

    邮件上说:

    主题:测试结果

    消息:您的所有测试都在dev中通过了提交0e39756366273。

    詹金斯已经提供这个功能了吗?我想让我的设置电子邮件的人谁提出了最新的承诺。

    另外,有没有一种方法可以以编程方式获取最近提交的作者的电子邮件(例如,使用 http://www.eclipse.org/jgit/ http://javagit.sourceforge.net )?

    我真的不在乎我如何收到电子邮件通知-我只是想要它们,我不能使用travisci。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Arun Gupta    6 年前

    我会一部分一部分地给出解决办法。

    第1部分: 是的,您可以从 詹金斯 Link

    第2部分 如何从gitcommit获取电子邮件id和其他内容。 为此 詹金斯 服务器应在生成服务器中安装git命令。 创建一个conf文件ex。 /conf/reference 哪有

    app {
      git {
         commit = "CURRENT_COMMIT"
         repo = "CURRENT_REPO"
         timestamp = "CURRENT_TIMESTAMP"
         emailId = "EMAIL_ID"
         }
    }
    

    生成时运行命令

    sed -i'' "s/CURRENT_COMMIT/$(git rev-parse HEAD)/g" conf/reference.conf
    sed -i'' "s^CURRENT_REPO^$(git config --get remote.origin.url)^g" conf/reference.conf
    sed -i'' "s/CURRENT_TIMESTAMP/$(git show -s --format=%ci HEAD)/g" conf/reference.conf
    sed -i'' "s/EMAIL_ID/git --no-pager show -s --format='%an <%ae>' CURRENT_COMMIT/g" conf/reference.conf
    

    上面的代码将把值放入 reference.conf . 现在你可以用来获取信息和发送邮件。据我所知,詹金斯提供了发送电子邮件的能力。詹金斯研究的是环境变量,而不是把它放到 reference.conf文件 您可以将其放入环境变量中,并使用环境变量发送邮件。

    FY: 我还没有测试过这段代码,但据我在詹金斯工作时的记忆,我们曾经用这种方式发送电子邮件。

    大花