gpt4 book ai didi

travis-ci - 在推送到不同的存储库时自动触发 Travis?

转载 作者:行者123 更新时间:2023-12-03 15:00:04 31 4
gpt4 key购买 nike

每次推送到存储库 Y 时,有没有办法触发存储库 X 的 Travis CI 构建?具体来说,我希望每次推送到 http://github.com/tensorflow/tensorflow 时都开始构建。

最佳答案

好问题!以下是我能想到的一些解决方案:

如果你对 repo 有管理员权限 (或知道有人这样做),您可以创建一个订阅 push 的 webhook事件和触发时,使用 Travis API 在 Travis CI 上开始构建。

这将需要:

  • http://github.com/tensorflow/tensorflow/settings/hooks/new 上创建一个新的 GitHub 网络 Hook .当然,根据您的需要自定义设置,但根据我所掌握的信息,我建议使用 application/json内容类型,只有 GitHub 使用 push 触发 webhook事件。
  • 编写一个期望来自 GitHub 的 HTTP POST 有效负载的小型 Web 应用程序,并使用 Travis CI 的 API 开始构建。这个 Web 应用程序可以用任何语言编写,但它必须部署到始终保持清醒和监听的地方(以防止丢失构建)。

  • 这是我的例子。
    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
  • 瞧!部署此 Web 应用程序并正确配置 GitHub Webhook 后,您应该会看到在 Travis CI 上运行的构建,每次新推送 http://github.com/tensorflow/tensorflow .

  • 有用的文档
  • https://docs.travis-ci.com/user/triggering-builds/
  • https://developer.github.com/webhooks/
  • https://developer.github.com/webhooks/configuring/

  • 但是,如果您对存储库没有管理员权限 ,您可以创建一个受您控制的存储库镜像,然后按照上面的说明进行操作(有一些区别)。从我所做的小研究来看,如果没有原始/官方存储库的管理员访问权限,就不可能(或至少不容易)在 GitHub 上创建存储库的镜像。

    话虽如此,我找到了一个可行的解决方法。
  • 进口 tensorflow/tensorflow到 GitLab 并使用镜像存储库功能,使其镜像 http://github.com/tensorflow/tensorflow作为您的 GitLab 存储库的上游。
  • 从那里,像往常一样按照上面的说明进行操作,除了使用 GitLab 的 webhook API 而不是 GitHub 发送推送事件以触发我们的 Web 应用程序开始在 Travis CI 上构建。

  • 有用的文档
  • https://about.gitlab.com/2016/12/01/how-to-keep-your-fork-up-to-date-with-its-origin/
  • https://docs.gitlab.com/ce/user/project/integrations/webhooks.html

  • 我希望这些信息对您有所帮助。如果您有任何其他问题,请告诉我,我很乐意尽我所能提供帮助。 :)

    关于travis-ci - 在推送到不同的存储库时自动触发 Travis?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37568519/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com