我的公司现在正在使用 Subversion,我们让 Jenkins 拉动 SCM 进行更改,如果有任何更改,它将执行 Maven 构建。
我们正在迁移到 Git,但我看不到任何方法可以拉动 Git 存储库以进行更改……我错过了什么吗?
您可以配置 Jenkins Git 插件来轮询您的存储库以进行更改,但推荐的方法是在您的存储库中添加一个 post-receive(也称为 post-commit)挂钩。这样,Jenkins 在每次提交时都会立即收到通知。
你可以在这里阅读更多:https ://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin
您可能没有安装 Git 插件,这就是您看不到选项的原因。您将永远不必为 subversion 执行此操作,因为默认情况下是该插件。您可以使用 Jenkins 中提供的自动安装程序来安装插件,也可以手动安装(如果您在公司防火墙后面很有用)。
一些有用的链接:Git 插件:https ://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin
GitHub 插件:https ://wiki.jenkins-ci.org/display/JENKINS/GitHub+Plugin
Bitbucket 插件:https ://wiki.jenkins-ci.org/display/JENKINS/Bitbucket+OAuth+Plugin
谷歌代码插件:https ://wiki.jenkins-ci.org/display/JENKINS/Repo+Plugin
Git 参数插件:https ://wiki.jenkins-ci.org/display/JENKINS/Git+Parameter+Plugin
GitLab 钩子插件:https ://wiki.jenkins-ci.org/display/JENKINS/Gitlab+Hook+Plugin
所有插件的大列表:https ://wiki.jenkins-ci.org/display/JENKINS/Plugins#Plugins-Sourcecodemanagement
CloudBees提供 Jenkins 持续集成和 Git 托管即服务 - 这也可能对您有所帮助http://www.cloudbees.com/#slide-2。
祝您迁移顺利。在执行类似迁移时,我们在 Maven 发布插件中发现了一些问题——如果我必须再次这样做,我会事先发布一些专业版本。
首先您需要配置 Jenkins Git 插件,其中包括 Git 客户端、Git hook up 等。然后转到 GitHub 帐户并导航到
设置 → 服务挂钩 → WebHook URL。
您需要提供运行 Jenkins 的机器主机名以及 Jenkins 端口号。
WebHook URL 类似于 - http://host_name:8080/github-webhook/(其中 8080 是默认的 Jenkins 端口)
当您将更改推送到 GitHub 时,GitHub 将使用 POST 请求访问这些 WebHook URL,并传递有关推送的信息。
Jenkins 提供了一些构建触发器选项,如下所示 -
选择最适合您要求的。
为了在 Jenkins 中使用 Git,需要安装以下两个插件:
1. Git-Client-plugin
2. Git-plugin
第一个插件(Git-Client-plugin)是执行 git 操作(git add、git commit、git push、git clone 等)的低级 API。
第二个插件 (Git-plugin) 添加 Git 作为 Jenkins 作业的 SCM 选项。
第二个插件依赖于第一个插件的功能,因此两者都必须存在,Git 才能与 Jenkins 一起工作。