安装 Gitee Jenkins 插件
环境说明
- 系统版本:
- Jenkins 版本
- Jenkins ver. 2.176.2
插件安装
- 前往 Manage Jenkins -> Manage Plugins -> Available,在 Filter 中搜索 Gitee:
- 下方可选列表中勾选 Gitee(如列表中不存在 Gitee,则点击 Check now 更新插件列表),然后点击“Download now and install after restart”。
- 在安装页面勾选“Restart Jenkins when installation is complete and no jobs are running”
- 安装完之后,可以在 “installed” 页面看到 Gitee 插件
插件配置
添加 Gitee 链接配置
- 前往 Jenkins -> Manage Jenkins -> Configure System -> Gitee 配置 -> Gitee 链接
- 在 链接名 中输入 Gitee 或者你想要的名字
- Gitee 域名 URL 中输入码云完整 URL地址: https://gitee.com (码云私有化客户输入部署的域名)
证书令牌 中如还未配置码云 APIV5 私人令牌,点击 Add - > Jenkins
- Domain 选择 全局凭据
- Kind 选择 Gitee API 令牌
- Scope 选择你需要的范围
- Gitee API Token 输入你的码云私人令牌,获取地址:https://gitee.com/profile/personal_access_tokens
- ID, Descripiton 中输入你想要的 ID 和描述即可。
- Credentials 选择配置好的 Gitee APIV5 Token
点击 Advanced ,可配置是否忽略 SSL 错误(适您的Jenkins环境是否支持),并可设置链接测超时时间(适您的网络环境而定)
点击 Test Connection 测试链接是否成功,如失败请检查以上 3,5,6 步骤。
新建构建任务
- 前往 Jenkins -> New Item , name 输入 ‘Gitee Test’,选择 Freestyle project , 再点击 OK 即可创建构建项目。
任务全局配置
- 任务全局配置中需要选择前一步中的Gitee 链接。如图:
源码管理配置
选择 Source Code Management 选项卡:
- 点击 Git
输入你的仓库地址,例如 https://gitee.com/AndyWannaSing/hello-casstime-demo.git
- 点击 add-Jenkins,添加用户名和密码凭证(连接项目的时候需要用它做校验)
- 点击 Advanced 按钮, Name 字段中输入 origin, Refspec 字段输入
+refs/heads/*:refs/remotes/origin/* +refs/pull/*/MERGE:refs/pull/*/MERGE
- Branch Specifier 选项:
- 对于单仓库工作流输入: origin/${giteeSourceBranch}
- 对于 PR 工作流输入: pull/${giteePullRequestIid}/MERGE
- Additional Behaviours 选项:
- 对于单仓库工作流,如果你希望推送的分支构建前合并默认分支(发布的分支),可以做以下操作:
- 点击 Add 下拉框
- 选择 Merge before build
- 设置 Name of repository 为 origin
- 设置 Branch to merge to 为 ${ReleaseBranch} 即您要合并的默认分支(发布分支)
- 对于 PR 工作流,码云服务端已经将 PR 的原分支和目标分支作了预合并,您可以直接构建,如果目标分支不是默认分支(发布分支),您也可以进行上诉构建前合并。
- 对于单仓库工作流,如果你希望推送的分支构建前合并默认分支(发布的分支),可以做以下操作:
触发器配置
选择 Build Triggers 选项卡:
- Enabled Gitee triggers 勾选您所需要的构建触发规则,如 Push Event, Opened Merge Request Events,勾选的事件会接受WebHook,触发构建。目前支持触发事件有:
- Push Events :推送代码事件
- Opened Merge Request Events :提交 PR 事件
- Updated Merge Request Events :更新 PR 事件
- Accepted Merge Request Events :接受/合并 PR 事件
- Closed Merge Request Events :关闭 PR 事件
- Approved Pull Requests : 审查通过 PR 事件
- Tested Pull Requests :测试通过 PR 事件
- Enable [ci-skip] 该选项可以开启支持 [ci-skip] 指令,只要commit message 中包含 [ci-skip],当前commit 即可跳过构建触发。
- Ignore last commit has build 该选项可以跳过已经构建过的 Commit 版本。
- Allowed branches 可以配置允许构建的分支,目前支持分支名和正则表达式的方式进行过滤。
- Secret Token for Gitee WebHook 该选项可以配置 WebHook 的密码,该密码需要与码云 WebHook配置的密码一致方可触发构建。
注意:若 PR 状态为不可自动合并,则不触发构建。
构建后步骤配置
选择 Post-build Actions 选项卡:
构建结果回评至码云
- 点击 Add post-build action 下拉框选择 “将构建状态评论到 Gitee pull request 中”
- Advanced 中可以配置:
- 仅为构建失败回评到码云
- 自定义各状态的回评内容(内容可以引用 Jenkins 的环境变量,或者自定义的环境变量)
若开启该功能,还可将不可自动合并的状态回评至码云
构建成功自动合并PR
点击 Add post-build action 下拉框选择 “当构建成功自动合并 Gitee 的 Pull Request”
新建码云仓库WebHook
进入源码管理配置中设置的码云仓库中,进入 管理 -> WebHooks:
- 添加 WebHook, URL 填写 触发器配置的地址。
- 密码填写:触发器配置第 5 点中配置的 WebHook密码,不设密码可以不填
勾选 PUSH, Pull Request
其中:http://7e2be7e8.ngrok.io/project/Gitee Test 是外网的IP。(内网转外网域名的方法)
测试触发构建
通过测试按钮触发构建
测试推送触发构建
- 码云的 WebHook 管理中选择勾选了PUSH的 WebHook 点击测试,观察 Jenkins 任务的构建状态
- 码云仓库页面编辑一个文件提交,观察 Jenkins 任务的构建状态
测试PR触发构建
- 码云的 WebHook 管理中选择勾选了 Pull Request 的 WebHook 点击测试,观察 Jenkins 任务的构建状态
- 在码云仓库中新建一个Pull Request,观察 Jenkins 任务的构建状态