Bos*_*h99 9 continuous-integration github jenkins jenkins-plugins
我正在尝试设置Jenkins PR builder插件,以便在新的pull请求中点击github.我已经跟着文档,并尝试了"许多"不同的配置,但我似乎无法通过这个:
" 忽略refs/heads/jenkins_testing,因为它与任何配置的refspecs都不匹配 "
如果我将分支说明符留空,则PR上的"任何"更改会触发构建.从此,我知道
Refspec:我只使用规定的PR设置 -
+refs/pull/*:refs/remotes/origin/pr/*
Run Code Online (Sandbox Code Playgroud)
分支 我尝试了很多设置
${sha1} - ignored
${ghprbActualCommit} - ignored
branch-id - gets built, but I need "any" PR
** (blank) - too much gets built, undesirable
Run Code Online (Sandbox Code Playgroud)
Jenkins/PR builder配置:
投票结果仍然存在:
我知道这个错误导致了这个问题,但是从1.31更新到1.33后,问题仍然存在.
我已经阅读了关于运行两个进程的内容,但我不确定为什么我需要它(请解释,如果有的话).
可你看到什么错在我的配置?任何澄清或建议都是最受欢迎的.
干杯 -
看来,根据refspec +refs/pull/*:refs/remotes/origin/pr/*,您希望此项目仅构建拉取请求.
但是,您似乎已启用Poll SCM触发器以及Github Pull Request Builder(GHPRB)触发器.
请记住,GHPRB插件已经是一个触发器.启用其他触发器的唯一原因是,如果您希望此项目也构建正常分支.如果是这种情况,请参阅本文的底部以获取有关此用例的更多信息.
因此,第一步是确保启用的唯一触发器是GHPRB插件.
下一步是要认识到您没有使用Github webhooks - 可能是由于防火墙限制.这意味着您正在使用一个cronjob,它将使用Github API检查Pull Request更新并将其与上次轮询进行比较以检测更改.
这意味着您的凭据必须正确,首先.您可以在GHPRB插件部分下检查Jenkins的系统设置部分(您必须是管理员)中的凭据.确保凭据具有查看,评论等所需的所有权限.
如果所有这些都是正确的,日志可能会为您提供更多信息.如果您是管理员,则可以转到管理Jenkins并查找系统日志.通过查看日志,您可能会发现与您的问题相关的错误.
在你的情况下,因为我是你的系统管理员并且为了第三方的利益而输入所有这些,我注意到我们看到在尝试访问API时从GitHub插件中抛出FileNotFound异常.
原因?
GHPRB插件使用Github插件与API通信,因此轮询Pull请求.Project urlGithub插件的字段用于生成轮询请求的API URL.
删除.gitURL 的一部分!即使在浏览器中访问URL时它会完美地找到,如果你.git在API中添加后缀到项目名称,它会生气并且会给你一个404.通过从Project url字段中删除此后缀,GitHub插件将解析API请求的正确URL路径,并且生活是美好的.
建立PR和正常分支
为了对Pull请求和普通分支使用单个Jenkins项目,您需要做一些额外的事情.
refspec配置,不仅包括您当前配置的pull request refspec,还包括您希望构建的分支的refspec.例如,如果您希望所有标记和分支都可用于构建,则可以使用+refs/pull/*:refs/remotes/origin/pr/* +refs/heads/*:refs/remotes/origin/*${sha1}用于构建PR,并且除非GHPRB插件触发构建,否则不会创建此环境变量,您需要将此项目转换为参数化构建并创建一个名为sha1默认值等于如果您没有使用GHPRB插件,通常在Branch Specifier下放置的分支,然后确保Branch Specifier字段引用该${sha1}变量.如果GHPRB插件用于触发构建,则GHPRB插件将覆盖此参数,否则默认值将用于其他触发器.这也使您有机会通过在构建时从UI(或脚本)指定参数来手动运行构建.您可能需要进行一些其他调整,但这些是立即浮现在脑海中的主要调整.
| 归档时间: |
|
| 查看次数: |
2131 次 |
| 最近记录: |