gpt4 book ai didi

jenkins - gitea 和 jenkins 网络钩子(Hook)

转载 作者:行者123 更新时间:2023-12-04 22:28:01 34 4
gpt4 key购买 nike

我正在测试 Gitea,并希望它触发 Jenkins 构建,非常基本的用例。我知道有现有的 GOGs webhook 插件可以使用,但最近还发现 Jenkins 也有一个 Gitea 插件。

在 GOGS 案例中,您可以通过以下方式调用 Jenkins:
http://localhost:8080/gogs-webhook/?job=job_name

在上面的示例中,显然根据需要更新了 Jenkins 位置和作业名称。

问题是 Gitea 插件没有文档,但根据源代码,URL 应该是:

http://jenkins-url/gitea-webhook/post

我认为应该发生的顺序如下:

  • Gitea 看到推送事件并将信息发布到 Jenkins webhook
  • Jenkins Gitea webhook 看到 POST 并使用该信息从 Gitea 获取新的源代码。

  • 问题是 gitea 插件如何知道要执行什么作业?你如何指定这个?现在我可以看到 gitea 正在通过上述 URL 向 Jenkins 发送 POST,但没有发生任何事情,Jenkins 日志也没有任何信息可以了解其失败的原因。

    编辑:

    我在这里遇到了一个问题,在将生成的公共(public) SSH key 复制到 Gitea 用户帐户后,Jenkins 仍然无法访问存储库以使用管道编辑器。不确定我在这里缺少什么,因为我能够从 localhost(Docker 环境之外)完美地推/拉,并检查了容器确实也可以完美地看到彼此......

    谢谢

    最佳答案

    我已经成功地使用相对较新的版本配置了 Jenkins/Gitea 组合(我对两者都使用了官方的基于 alpine 的 docker 容器)。我使用 this Gitea issue 作为指导。我没有在 Jenkins 中使用 Gogs 插件,只使用了 Gitea 插件。我也不使用 Pipeline,只使用经典的手动配置作业。

    在 Jenkins 中:在作业设置页面上将“源代码管理”选项设置为“Git”,提供指向您的存储库 (http://gitea-url.your.org/username/repo.git) 的 URL,并在“轮询触发器”部分检查“轮询 SCM”选项,但未定义时间表。此设置基本上告诉 Jenkins 仅在通过 webhook 请求时轮询您的 Gitea 存储库。

    在 Gitea 中:在 repo -> Settings -> Webhooks 下,添加新的 webhook,将 URL 设置为 http://jenkins_url.your.org/gitea-webhook/post ,并清除 secret (留空)。

    此时单击“测试交付”按钮应该会产生成功的交付尝试(绿色复选标记)。

    如果您的测试交付失败,请尝试查看是否可以 POST 到 Jenkins webhook URL (http://jenkins_url.your.org/gitea-webhook/post)。例如。使用 Postman 或 curl:

    curl -vvv -H "Content-Type: application/json" -H "X-Gitea-Event: push" -X POST http://jenkins.server.example.sk:8080/gitea-webhook/post -d "{}"

    正确的响应应该只是简单的“已处理”字符串。如果你有别的东西,把它贴在这里。

    至于您关于 Jenkins 如何知道要构建什么工作 的问题,我的理解是 POST request body contains 是指向 repo/branch 的链接,Jenkins 在内部查找它以找到引用此 repo 的工作(您在上面的作业设置页面)。 This Jenkins wiki page 讲述了更多关于通用钩子(Hook)的信息,并且还有 this answer 带有更多链接,可以解释引擎盖下发生的事情。

    要稍微调试一下 ,您可以使用 gitea 存储库(或组织)设置中的“最近交付”(可点击整个帖子请求和响应!)作为 shown in this answer 。请记住,gitea 有它的/etc/gitea/app.ini 文件,其中指定了 ssh 域、gitea 服务器域和 http url,并且您在 jenkins 中指定了 gitea srvers。这些网址必须匹配才能正常工作!

    关于jenkins - gitea 和 jenkins 网络钩子(Hook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48316346/

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