GitHub to Jenkins."> GitHub | 必威国际有限公司Jenkins插件 - betway必威足彩

GitHub

ID:github

codecov"data-canonical-src=许可证"data-canonical-src=

这个插件集成了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。单击(提问)"style=图标(在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([$ .])GitHubCommitStatusSetterreposSource(美元:ManuallyEnteredRepositorySourceurlhttps://github.com/my-org/my-repo],contextSource(美元:ManuallyEnteredCommitContextSource上下文ci 必威国际有限公司/ jenkins /构建状态],errorhandler: [[$ChangingBuildStatusErrorHandler结果不稳定]],statusResultSource(美元:ConditionalStatusResultSource结果: [[$AnyBuildResult消息:消息,状态: state]]]]);} setBuildStatus (建立完整的成功);

更复杂的例子(可以与管道中的多个scm源一起使用)

.git/remote-url" return readFile(".git/remote-url").trim() } def getCommitSha() { sh "git rev-parse HEAD > .git/current-commit" return readFile(".git/current-commit").trim() } def updateGithubCommitStatus(build) { // workaround https://issues.jenkins-ci.org/browse/JENKINS-38674 repoUrl = getRepoURL() commitSha = getCommitSha() step([ $class: 'GitHubCommitStatusSetter', reposSource: [$class: "ManuallyEnteredRepositorySource", url: repoUrl], commitShaSource: [$class: "ManuallyEnteredShaSource", sha: commitSha], errorHandlers: [[$class: 'ShallowAnyErrorHandler']], statusResultSource: [ $class: 'ConditionalStatusResultSource', results: [ [$class: 'BetterThanOrEqualBuildResult', result: 'SUCCESS', state: 'SUCCESS', message: build.description], [$class: 'BetterThanOrEqualBuildResult', result: 'FAILURE', state: 'FAILURE', message: build.description], [$class: 'AnyBuildResult', state: 'FAILURE', message: 'Loophole'] ] ] ]) } ">
defgetRepoURL() {sh> .git/remote-url返回readFile (. /远程urltrim ()}defgetCommitSha() {shgit rev-parse HEAD > .git/current-commit返回readFile (. / current-committrim ()}defupdateGithubCommitStatus构建){//工作区https://issues.jenkins 必威国际有限公司- ci.org/browse/jenkins - 38674repoUrlcommitSha getRepoURL ()getCommitSha([$()步骤GitHubCommitStatusSetterreposSource(美元:ManuallyEnteredRepositorySourceurl: repoUrl],commitShaSource(美元:ManuallyEnteredShaSource: commitSha],errorhandler: [[$ShallowAnyErrorHandler]],statusResultSource(美元:ConditionalStatusResultSource结果: [[$BetterThanOrEqualBuildResult结果成功状态成功消息:构建描述]、[$BetterThanOrEqualBuildResult结果失败状态失败消息:构建描述]、[$AnyBuildResult状态失败消息漏洞]]]])}

更改日志

GitHub版本

发展

启动本地Jenkins实例:必威国际有限公司

运行mvn现病史:

必威国际有限公司Jenkins Plugin Maven目标

创建一个新插件的框架。创建。hpi文件生成。hpl文件hpi:run使用当前插件项目运行Jenkins。hpi:upload将hpi文件发布到java.net。必威国际有限公司在释放期间使用。

如何安装

运行

现病史mvn现病史:

创建插件。hpi文件。

如何安装:

  1. 复制生成的。/target/rdoc。hpi文件到$JENKINS_HO必威国际有限公司ME/plugins目录。别忘了之后重启Jenkins。必威国际有限公司

  2. 或使用插件管理控制台(https://example.com:8080/pluginManager/advanced)上载hpi文件。你必须重新启动Jenkins才能在已安装必威国际有限公司的插件列表中找到该插件。

插件版本

mvn release:prepare release:perform -Dusername=juretta -Dpassword=******