首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gitea和jenkins网络钩子

gitea和jenkins网络钩子
EN

Stack Overflow用户
提问于 2018-01-18 07:58:14
回答 6查看 21.9K关注 0票数 6

我正在测试Gitea,并希望它触发一个Jenkins构建,相当基本的用例。我知道有现有的GOGs网络钩子插件可以使用,但最近也发现有一个Gitea插件为Jenkins以及。

在GOGS的情况下,您可以打电话给Jenkins:名字

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

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

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

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

  1. Gitea看到了推送活动,并将信息发布到Jenkins web钩子。
  2. Jenkins Gitea web钩子看到这篇文章,并使用该信息从Gitea获取新的源代码。

问题是,gitea插件如何知道执行什么任务?您如何指定这一点?现在我可以看到gitea在上面的URL上向Jenkins发送帖子,但是什么都没有发生,Jenkins日志也没有任何信息来理解其失败的原因。

编辑:

我在这里遇到一个问题,在将生成的公共SSH密钥复制到Gitea用户帐户后,Jenkins仍然无法访问回购以使用管道编辑器。不知道我在这里缺少的是什么,因为我能够完美地从本地主机(码头环境之外)推拉,并且检查容器是否也能完美地看到对方.

谢谢

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2018-05-08 10:16:12

我已经成功地使用了相对新的版本配置了Jenkins/Gitea组合(对于这两个版本,我都使用了官方的基于高山的码头容器)。我用这个Gitea问题做向导。我没有在Jenkins使用Gogs插件,只有Gitea插件。我也不使用管道,只有经典的手动配置的作业。

在Jenkins:在作业设置页面上,将“源代码管理”选项设置为"Git",为您的回购(http://gitea-url.your.org/username/repo.git)提供URL,并在"Poll触发器“部分检查"Poll”选项,而没有定义时间表。这个设置基本上告诉Jenkins只在通过web钩子请求时才轮询您的Gitea repo。

在Gitea中:在repo ->设置-> Webhooks下,添加新的web钩子,将URL设置为Url.your.org/gitea-web钩子/post,并清除秘密(保留为空)。

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

如果您的测试交付失败,请尝试查看是否可以将其发布到Jenkins (Url.your.org/gitea-web钩子/post)。例如使用邮递员或卷曲:

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

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

至于关于的问题,詹金斯知道构建的任务是什么,我的理解是,POST请求体包含是到回购/分支的链接,Jenkins在内部查找这个链接,以找到引用该回购(在上面的作业设置页面中定义的内容)的作业。这个Jenkins wiki页面提供了更多关于泛型钩子的信息,还有一些带有更多链接的这个答案,这些链接可能会解释一下引擎盖下面发生了什么。

来调试,您可以使用“最近的交付”(可以单击整个post请求和响应!)从gitea存储库(或组织)设置为如本答案所示。请记住,gitea有其/etc/ gitea /app.ini文件,其中指定了ssh域、gitea服务器域和http url,并且在jenkins中指定了gitea srvers。这些urls必须匹配的东西才能工作!

票数 12
EN

Stack Overflow用户

发布于 2018-02-07 03:38:46

当我最初在詹金斯安装Gitea插件时,尝试在Gitea中配置一个web钩子来触发Jenkins管道项目(都是在本地完成的),然后就像上面提到的@PhilW (假设您在http://localhost:8080运行Jenkins )一样,触发Gitea的http://localhost:8080/gitea-webhook/?job=job_name也不适合我。

话虽如此,我随后在詹金斯安装了Gogs插件,在Gitea http://localhost:8080/gogs-webhook/?job=job_name中重新配置了webhook (注意到了差异),然后Jenkins构建了我的管道项目,没有任何问题。

另外值得一提的是,作为一个简单的肮脏技巧,我发现如果您指定Jenkins服务器的基本URL (在您的web浏览器中),使用适当的web钩子附件。

  • http://localhost:8080/gogs-webhook/ (在Jenkins中安装了Gogs插件并启用),或
  • http://localhost:8080/bitbucket-hook/ (安装并启用了Bitbucket插件),

你得到的只是一个空白页面,这似乎表明Jenkins中的相关web钩子最有可能按预期运行。

指定http://localhost:8080/gitea-webhook/ (安装并启用了Gitea插件)会返回一个HTTP 404,因此我怀疑这个插件可能有一两个bug。

票数 3
EN

Stack Overflow用户

发布于 2018-02-27 18:09:40

我在Jenkins上使用Gitea插件1.0.4,我对webhooks没有问题。我没有安装Gog插件。

从Gitea (存储库->设置-> webhooks),我可以手动定义我的web钩子,指示URL:https://my-jenkins/gitea-webhook/post

这可以手动测试,运行“测试交付”,如下图所示:

詹金斯方面,我已经配置了吉蒂亚的证书。当Jenkins找到一个带有Jenkinsfile (我使用管道)的项目时,它会自动配置存储库(Gitea侧)的web钩子(如果不存在)。

Gitea将通过一篇包含大量JSON格式信息的帖子通知Jenkins。

Jenkins必须能够访问GIT存储库,因此您需要为他创建Git的凭据。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48316346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档