• Windows 10 (因为还需要跑其他一些东西)
  • Jenkins 2.204.1 LTS
  • 内置 Jenkins war 2.217

配置 GitHub

鉴权

Jenkins 的安装过程很简单就不写了。首先需要安装 GitHub Plugin 插件,如果安装 Jenkins 时选择了安装常用插件那么应该已经装好了,否则就去手动安装一下。

为了和 GitHub 账户连接,当然要配置一下鉴权。进入 Manage Jenkins - Configure System,找到 GitHub,添加一个 GitHub 服务器,API URL 保持默认 https://api.github.com 就行,名称随便填。点击凭据右边的问号可以看到帮助。

去 GitHub 生成一下 AccessTokenNote 就是一个备注随便填,下面的授权范围要勾选 repoadmin:repo_hook.

复制一下生成的 Token 回到 Jenkins 添加凭据,类型选 Secret text,将 Token 粘贴到 Secret 编辑框内,ID 留空,描述 自己填一下其他保持默认。

最后在下拉框中选选中刚刚添加的,点一下连接测试,通过就行啦😁

Webhooks

Webhooks 用于当发生特定的事件(例如一个新的 push)时 GitHub 主动去通知外部服务。打开需要集成的项目,进入 Settings - Webhooks,点击 Add webhook.

Payload URL 输入 http://[Jenkins 访问的地址]/github-webhook/,格式选择 json,其他保持默认点击添加就行。

创建任务

我们要创建一个 Freestyle project. 勾选 GitHub 项目 并输入项目地址(主页)。

源码管理选择 Git 并输入仓库地址(也就是 git clone 时用的地址,注意和项目地址区分),如有必要根据实际情况添加并选择凭证。如果使用 https 方式那么就添加用户名和密码,使用 git 方式就添加私钥。

注意,Jenkins 所在的系统需要安装好 Git 官方客户端,否则这一部无法成功验证。

源码库浏览器选择 githubweb 并在下面填上项目地址。构建触发器选择 GitHub hook...⚠️注意!下面的构建环境无需勾选! 很多教程会要求勾选 Use secret text(s) or file(s),经过实际测试这个用不到。如果你真的选了必须在 变量 处指定一个变量名,如果留空执行任务的时候会出现 87 参数错误,被这个问题坑了好久气死惹👿

构建流程里先添加一个 Set build status to "pending" on GitHub commit 这样就可以通知 GitHub 正在运行测试。在构建后操作处添加 Set GitHub commit status (universal)Status result 选择 One of default ... 其他保持默认就行了。当然你也可以选择另一个模式根据不同的执行结果自定义返回状态。

这样就完成啦。往仓库里 push 一下就可以看到 Jenkins 已经启动构建,如果创建了 PR 那么还会实时显示构建状态😃 整体配置不算难,思路也很清晰,要注意的就是很多网络教程很老了,会踩很多坑。

Last modification:January 28, 2020