繁体   English   中英

通过Git或Jenkins更改源代码

[英]source code changes either through Git or Jenkins

我们的要求如下-我们正在使用Git和Jenkins。我们想找出GitHub上次成功构建的源代码更改和当前更改。 (分支相同)我们要通过电子邮件发送此更改列表(不作为附件发送)

我们尝试使用git diff,jenkins的email-ext插件。 实现这一目标的不同方式可能是什么。

我建议结合使用git hookJenkins Remote JSON API

您可以使用JSON API获取有关上一次成功构建的信息,URL如下所示:

http://<hostname>:<port>/job/<test_name>/lastSuccessfulBuild/api/json

JSON将作为GET返回该URL的结果而返回。 在该JSON内部将包含一个名为buildsByBranchName的哈希。 其中至少列出一个,可能还会列出更多分支。 您可能需要origin / master ,尽管这将取决于您要合并到的分支。 在它的内部是一个名为revision的属性,在其中是SHA1 然后可以在git diff中使用它

对于git hooks ,我建议使用post-receive挂钩。 本质上,这是一个bash脚本,但是它可以包装更复杂的脚本,例如Python 这里要记住的一件事是,如果当前提交是合并,则您要签出的内容实际上可能是当前提交之上的一两个提交。

无论如何,假设您将Python脚本包装在接收后挂钩中。 在该Python脚本中,您可以添加调用上面提到的JSON URL的代码,以确定上一次成功构建的提交哈希

然后你可以使用结合最新提交的哈希(你可以从git的钩内使用标准的git的命令行工具,其中有各种各样的方法来做到这一点得到),然后做使用一个git的差异提交哈希,您将获得最后一次成功构建和最近一次构建之间的更改。

然后,您可以从脚本中通过电子邮件将这些更改发送到所需人员列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM