每次推送到存储库 Y 时,有没有办法触发存储库 X 的 Travis CI 构建?具体来说,我希望每次推送到 http://github.com/tensorflow/tensorflow 时都开始构建。
最佳答案
好问题!以下是我能想到的一些解决方案:
如果你对 repo 有管理员权限 (或知道有人这样做),您可以创建一个订阅 push
的 webhook事件和触发时,使用 Travis API 在 Travis CI 上开始构建。
这将需要:
application/json
内容类型,只有 GitHub 使用 push
触发 webhook事件。 这是我的例子。
post "/push-webhook" do
uri = URI.parse("https://api.travis-ci.org/repo/your-org/your-repo/requests")
request = Net::HTTP::Get.new(uri.request_uri)
request["Content-Type"] = "application/json"
request["Accept"] = "application/json"
request["Travis-API-Version"] = "3"
request["Authorization"] = "token your-token"
body = { "request" => { "branch" => "master" } }
request.body = body.to_json
response = http.request(request)
end
有用的文档
但是,如果您对存储库没有管理员权限 ,您可以创建一个受您控制的存储库镜像,然后按照上面的说明进行操作(有一些区别)。从我所做的小研究来看,如果没有原始/官方存储库的管理员访问权限,就不可能(或至少不容易)在 GitHub 上创建存储库的镜像。
话虽如此,我找到了一个可行的解决方法。
tensorflow/tensorflow
到 GitLab 并使用镜像存储库功能,使其镜像 http://github.com/tensorflow/tensorflow作为您的 GitLab 存储库的上游。 有用的文档
我希望这些信息对您有所帮助。如果您有任何其他问题,请告诉我,我很乐意尽我所能提供帮助。 :)
关于travis-ci - 在推送到不同的存储库时自动触发 Travis?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37568519/