这个插件集成了Jenkins必威国际有限公司Github项目。该插件目前有三个主要功能:
- 在你的Jenkins项目和GitHub之间创建超链接必威国际有限公司
- 通过从post-receive钩子中抓取HTTP post并可选地自动管理钩子设置,在推入存储库时触发一个作业。
- 将构建状态结果报告回github提交状态(记录在)
- 其他插件的基本特性
超链接之间的变化
Github插件装饰Jenkins“变化”页面,创建链接必威国际有限公司到你的Github提交和发布页面。它添加了一个侧边栏链接,链接回Github项目页面。
当创建一个作业时,指定连接到git。在“Github project”下输入:git@github.com:人/项目.git在“源代码管理”下选择Git,然后插入git@github.com:人/项目.
用于GITScm轮询的GitHub钩子触发器
此特性支持之后的构建post-receive钩子在GitHub库中.这个触发器只对匹配的repo的每个传入事件启动git-plugin内部轮询算法。
这个插件以前命名为“当一个更改被推到GitHub时构建”
使用
为了能够使用这个特性,不同的模式是可用的:
- 手动模式:url必须手动添加到每个项目中
- 自动模式:Jenkins自动注册每必威国际有限公司个项目的webhook
手动模式
在这种模式下,你将负责将钩子url注册到GitHub。单击图标(在Manage Jenkins 必威国际有限公司> Configure System > GitHub下)可以看到Jenkins中接收后提交POSTs的URL——但一般情况下URL是这个表单
J必威国际有限公司ENKINS_BASE_URL / github-webhook /美元
——例如:https://ci.example.com/必威国际有限公司jenkins/github-webhook/
.
一旦你有了URL,并将其作为webhook添加到相关GitHub存储库中,继续步骤3.
自动模式(Jenkins自己管理必威国际有限公司作业钩子)
在此模式下,Jenkins会必威国际有限公司根据后台的项目配置,自动向GitHub添加/删除钩子url。你将指定GitHub OAuth令牌,这样Jenkins就可以登录你这样做。必威国际有限公司
步骤1。进入全局配置并添加GitHub服务器配置。
步骤2.1。在GitHub中创建您的个人访问令牌。
插件可以帮助你完成所有需要的范围。去先进的->管理额外的GitHub动作->将登录和密码转换为令牌
双因素身份验证
自动创建令牌不工作GitHub 2足总
您可以创建“秘密文本”有令牌的凭据在相应的域直接与登录和密码,或从用户名和密码凭据。
步骤2.2。选择先前创建的“秘密文本”凭据与GitHub OAuth令牌。
令牌所需的范围
为了能够管理令牌应该具有的钩子管理:org_hook范围。
GitHub企业
你也可以通过点击重新定义GitHub url自定义GitHub API URL复选框。
请注意,凭据是在域需求的帮助下由输入的GH url过滤的。因此,您可以在不同的域中创建凭据,并且只看到与预定义域匹配的凭据。
步骤3。一旦配置完成,进入你想要自动触发的每个作业的项目配置,并简单地在“Build Triggers”下检查“当一个更改被推送到GitHub时构建”。这样,对存储库的每一次新推送都会自动触发新的构建。
注意,只有一个URL,它接收所有存储库的所有post-receive post。这个URL的服务器端足够智能,可以根据提交来判断需要触发哪些项目。
安全影响
这个插件需要你有一个可以从GitHub访问的HTTP URL,这意味着它可以从整个互联网访问。因此,它是小心地实现与可能的恶意假post-receive的想法。为了解决这个问题,在收到一个POST后,Jenkins将与GitHub对话,以确保推必威国际有限公司送确实进行了。
必威国际有限公司詹金斯在防火墙里
如果你的Jenkins运行必威国际有限公司在防火墙内部,不能直接从互联网上到达,这个插件可以让你指定一个任意端点URL作为自动模式的覆盖。插件会假设你已经设置了反向代理或其他方式,这样GitHub的POST将被路由到Jenkins。必威国际有限公司
故障钩子
如果你设置了这个但是build没有被触发,检查以下事情:
- 点击GitHub仓库上的“admin”按钮,确保post-receive钩子在那里。
- 如果没有,请确保在Jenkins系统配置页面中设置了正确的证书。必威国际有限公司
- 同时,启用日志记录类名的
com.cloudbees.必威国际有限公司jenkins.GitHubPushTrigger
org.必威国际有限公司jenkinsci.plugins.github.webhook.WebhookManager
com.cloudbees.必威国际有限公司jenkins.GitHubWebHook
你会看到Jenkins试图安装一个后接钩子的日志。必威国际有限公司
- 点击GitHub UI上的“测试钩子”按钮,看看Jenkins是否收到了有效载荷。必威国际有限公司
使用缓存到GitHub请求
每一个GitHub服务器配置创建自己的GitHub客户端与api交互。默认情况下,它使用缓存(with20 mb限制),以加速获取数据的过程,并减少速率限制的消耗。您可以在该配置项的“高级”部分更改缓存限制值。如果你设置为0,那么这个特性将被禁用。
额外的信息:
- 这个插件现在只提供来自github的钩子作为主要功能。然后它开始使用git-plugin获取源代码。
- 它工作于公共GitHub和企业GitHub
- 插件有一些限制
Jenkins和GitHub之间可能存在的问题必威国际有限公司
窗口:
- 在windows中,Je必威国际有限公司nkins将使用它运行的用户的SSH密钥,该密钥位于%USERPROFILE%\中。ssh文件夹(在XP上是C:\Documents and Settings\USERNAME\.)在第7条上它是C:\Users\USERNAME\.ssh)。因此,您需要强制Jenkins作为配置了SSH密钥的用户运必威国际有限公司行。要做到这一点,右键单击我的电脑,并点击“管理”。单击“服务”。到Jenki必威国际有限公司ns,右击,选择“属性”。在“Log On”选项卡下,选择Jenkins将作为用户运行,并输入用户名和密码必威国际有限公司(这是需要的)。然后右键单击Jenkins(在服务必威国际有限公司窗口中)重启Jenkins服务,然后点击“重启”。
- 必威国际有限公司Jenkins不支持SSH密钥的密码短语。因此,如果您在运行初始Github配置时设置了一个,请重新运行它,不要设置。
管道的例子
设置提交状态
这段代码将使用配置的上下文和消息设置自定义repo的提交状态(你也可以用同样的方式定义backref)
无效setBuildStatus(字符串消息,字符串状态) {step([$ .])类:"GitHubCommitStatusSetter",reposSource(美元:类:"ManuallyEnteredRepositorySource",url:"https://github.com/my-org/my-repo"],contextSource(美元:类:"ManuallyEnteredCommitContextSource",上下文:"ci 必威国际有限公司/ jenkins /构建状态"],errorhandler: [[$类:"ChangingBuildStatusErrorHandler",结果:"不稳定"]],statusResultSource(美元:类:"ConditionalStatusResultSource",结果: [[$类:"AnyBuildResult",消息:消息,状态: state]]]]);} setBuildStatus ("建立完整的","成功");
更复杂的例子(可以与管道中的多个scm源一起使用)
defgetRepoURL() {sh"> .git/remote-url"返回readFile (". /远程url").trim ()}defgetCommitSha() {sh"git rev-parse HEAD > .git/current-commit"返回readFile (". / current-commit").trim ()}defupdateGithubCommitStatus(构建){//工作区https://issues.jenkins 必威国际有限公司- ci.org/browse/jenkins - 38674repoUrl=commitSha getRepoURL ()=getCommitSha([$()步骤类:'GitHubCommitStatusSetter',reposSource(美元:类:"ManuallyEnteredRepositorySource",url: repoUrl],commitShaSource(美元:类:"ManuallyEnteredShaSource",沙: commitSha],errorhandler: [[$类:'ShallowAnyErrorHandler']],statusResultSource(美元:类:'ConditionalStatusResultSource',结果: [[$类:'BetterThanOrEqualBuildResult',结果:'成功',状态:'成功',消息:构建.描述]、[$类:'BetterThanOrEqualBuildResult',结果:'失败',状态:'失败',消息:构建.描述]、[$类:'AnyBuildResult',状态:'失败',消息:'漏洞']]]])}
更改日志
发展
启动本地Jenkins实例:必威国际有限公司
运行mvn现病史:
必威国际有限公司Jenkins Plugin Maven目标
创建一个新插件的框架。创建。hpi文件生成。hpl文件hpi:run使用当前插件项目运行Jenkins。hpi:upload将hpi文件发布到java.net。必威国际有限公司在释放期间使用。
如何安装
运行
现病史mvn现病史:
创建插件。hpi文件。
如何安装:
复制生成的。/target/rdoc。hpi文件到$JENKINS_HO必威国际有限公司ME/plugins目录。别忘了之后重启Jenkins。必威国际有限公司
或使用插件管理控制台(https://example.com:8080/pluginManager/advanced)上载hpi文件。你必须重新启动Jenkins才能在已安装必威国际有限公司的插件列表中找到该插件。
插件版本
mvn release:prepare release:perform -Dusername=juretta -Dpassword=******