gitee使用webhoot触发Jenkins自动构建

一、插件下载和配置

Manage Jenkins>Plugin Manager
在这里插入图片描述
下载gitee插件
在这里插入图片描述

插件配置

1、前往Jenkins -> Manage Jenkins -> Configure System -> Gitee Configuration -> Gitee connections
2、在 Connection name 中输入 Gitee 或者你想要的名字
3、Gitee host URL 中输入Gitee完整 URL地址: https://gitee.com (Gitee私有化客户输入部署的域名)
4、Credentials 中如还未配置Gitee APIV5 私人令牌,点击 Add - > Jenkins

  • Domain 选择 Global credentials
  • Kind 选择 Gitee API Token
  • Scope 选择你需要的范围
  • Gitee API Token 输入你的Gitee私人令牌,获取地址:https://gitee.com/profile/personal_access_tokens
  • ID, Descripiton 中输入你想要的 ID 和描述即可。

在这里插入图片描述
5、 Credentials 选择配置好的 Gitee APIV5 Token
6、点击 Advanced ,可配置是否忽略 SSL 错误(视您的Jenkins环境是否支持),并可设置链接测超时时间(视您的网络环境而定)
7、点击 Test Connection 测试链接是否成功,如失败请检查以上 3,5,6 步骤。
在这里插入图片描述

二、新建构建任务

前往 Jenkins -> New Item , name 输入 ‘SmartCampus’,选择 Freestyle project 保存即可创建构建项目。

任务全局配置

任务全局配置中需要选择前一步中的Gitee链接。前往某个任务(如’Gitee Test’)的 Configure -> General,Gitee connection 中选择前面所配置的Gitee链接(如果使用Gitlab,则点击上边),如图:
在这里插入图片描述

源码管理配置

前往某个任务(如’Gitee Test’)的 Configure -> Source Code Management 选项卡
1、点击 Git
2、输入你的仓库地址,例如 点击克隆/下载,选择https,复制

在这里插入图片描述

  • 点击 Advanced 按钮, Name 字段中输入 origin, Refspec 字段输入 +refs/heads/:refs/remotes/origin/+refs/pull//MERGE:refs/pull//MERGE,注意新版jenkins不再接受多条同时包含 * 通配符的refs描述,如只对push触发可写前半部分,如只对PR触发可只写后半段。具体可见下图:

触发器配置

前往任务配置的触发器构建: Configure -> Build Triggers 选项卡

1、Enabled Gitee triggers 勾选您所需要的构建触发规则,如 Push Event, Opened Merge Request Events,勾选的事件会接受WebHook,触发构建。目前支持触发事件有:

  • Push Events :推送代码事件
  • Commit Comment 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 事件
    2、Build Instruction Filter :
    None : 无过滤
    [ci-skip] skip build :commit message 或者 PR 说明包含 [ci-skip] 时,跳过构建触发。
    [ci-build] trigger build :commit message 或者 PR 说明包含 [ci-build] 时,触发构建。
    3、Ignore last commit has build 该选项可以跳过已经构建过的 Commit 版本。
    4、Cancel incomplete build on same Pull Requests 该选项在 PR 触发构建时,会判断是否存在相同 PR 且未完成的构建,有则取消未完成构建,再进行当前构建。
    5、Ignore Pull Request conflicts 该选项在 PR 触发构建时,会根据 PR 冲突情况选择是否进行构建。
    6、Allowed branches 可以配置允许构建的分支,目前支持分支名和正则表达式的方式进行过滤。
    7、Secret Token for Gitee WebHook 该选项可以配置 WebHook 的密码,该密码需要与Gitee WebHook配置的密码一致方可触发构建。
    8、注意:若 PR 状态为不可自动合并,则不触发构建。
    英文:
    在这里插入图片描述
    中文版
    在这里插入图片描述
    在这里插入图片描述

构建后步骤配置

前往任务配置的构建后配置: Configure -> Post-build Actions 选项卡
构建结果回评至Gitee
1、点击 Add post-build action 下拉框选择:Add note with build status on Gitee pull requests
2、Advanced 中可以配置:

  • Add message only for failed builds :仅为构建失败回评到Gitee
  • 自定义各状态的回评内容(内容可以引用 Jenkins 的环境变量,或者自定义的环境变量)

3、若开启该功能,还可将不可自动合并的状态回评至Gitee
在这里插入图片描述
构建成功自动合并PR
点击 Add post-build action 下拉框选择:Accept Gitee pull request on success

Gitee项目配置WebHook

登录Gitee,找到仓库,点击管理在这里插入图片描述
点击WebHooks ->添加webHook
在这里插入图片描述
URL 填写 触发器配置:Build when a change is pushed to Gitee. Gitee webhook URL 中所示 URL,如:: http://localhost:8080/gitee-project/SmartCampus
勾选 PUSH, Pull Request
在这里插入图片描述
URL写在Jenkins项目中的触发器中的地址,同理 WebHook密码也是触发器配置第 5 点中配置的 WebHook密码,不设密码可以不填
在这里插入图片描述

但是由于gitee是公网的,所有这里配置的url是需要公网能够访问的。
我们这是个人搭建,可以使用花生壳做代理。
在这里插入图片描述
所以最后wekhook中配置url这样写,最后保存即可。

在这里插入图片描述
注意:上边这个WebHook密码需要设置,不然就会报500错误,测试也不会成功
点击测试
在这里插入图片描述
登录Jenkins,点击下方按钮,查看控制台输出。

在这里插入图片描述
在这里插入图片描述
如图所示,构建成功,当我们在gitee仓库中对代码,文件等进行上传,修改时就会触发wekhook钩子函数,在Jenkins就是实现自动构建。
同理,使用Gitlab 利用 Webhook+jenkins 实现自动构建与部署的过程类似。
流程: Gitlab用于代码管理,当代码有变动时 ——> 触发webhook——>通知Jenkins ——> Jenkins接收到消息 ——> 触发相应Job ——> Jenkins将结果返回给Gitlab ——> gitlab接收到Jenkins返回的消息。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐