避免 github webhook 中的嵌套推送事件
Avoiding nested push event inside a github webhook
我的网站是从单个 github 存储库生成的,该存储库具有两个不同的文件夹源(模板、markdown 和资产)和站点(html 和资产)。我已经为推送事件设置了一个 github webhook,它触发拉取、构建和将生成的站点推送回同一个 github 存储库,但前提是头部提交的 id (来自 webhook 负载)与服务器上的 rev-parse'd HEAD 不同。这防止了递归循环,并且一切正常(目前)。
但是我担心无限循环的可能性,并且正在寻找更强大的解决方案。不幸的是,由于无关紧要的原因,我无法选择为源和站点使用两个单独的回购协议。
有没有解决方案可以让我在单个源+站点存储库中拥有此远程构建功能?
谢谢。
一个常见的解决方案是在提交消息中为不应触发构建过程的提交设置一个特殊的标记ci。例如,站点新构建的提交可能是“[ci skip] Site Rebuilt”。
对于 travis ci,只要提交包含“[ci skip]”,它就不会构建它。在 jenkins 中,这可以与 "Polling Ignores Commits with Certain Messages" 设置一起用于轮询 git。 Bamboo 有一个 "Exclude Changesets" 配置,可以配置为排除提交消息。
我的网站是从单个 github 存储库生成的,该存储库具有两个不同的文件夹源(模板、markdown 和资产)和站点(html 和资产)。我已经为推送事件设置了一个 github webhook,它触发拉取、构建和将生成的站点推送回同一个 github 存储库,但前提是头部提交的 id (来自 webhook 负载)与服务器上的 rev-parse'd HEAD 不同。这防止了递归循环,并且一切正常(目前)。
但是我担心无限循环的可能性,并且正在寻找更强大的解决方案。不幸的是,由于无关紧要的原因,我无法选择为源和站点使用两个单独的回购协议。
有没有解决方案可以让我在单个源+站点存储库中拥有此远程构建功能?
谢谢。
一个常见的解决方案是在提交消息中为不应触发构建过程的提交设置一个特殊的标记ci。例如,站点新构建的提交可能是“[ci skip] Site Rebuilt”。
对于 travis ci,只要提交包含“[ci skip]”,它就不会构建它。在 jenkins 中,这可以与 "Polling Ignores Commits with Certain Messages" 设置一起用于轮询 git。 Bamboo 有一个 "Exclude Changesets" 配置,可以配置为排除提交消息。