侧边栏壁纸
博主头像
小周的知识站 博主等级

行动起来,活在当下

  • 累计撰写 80 篇文章
  • 累计创建 12 个标签
  • 累计收到 8 条评论

目 录CONTENT

文章目录

Jenkins代码自动发布

Administrator
2024-06-28 / 0 评论 / 0 点赞 / 10 阅读 / 0 字

Jenkins代码自动发布

本实验我们实现只要GitLab的master分支有新代码提交,Jenkins 自动触发Build New(立即构建)功能,实现代码自动发布。


回到choujiang任务中点击构建触发器,Jenkins 本身内置了4种构建触发器,分别是:

  • 触发远程构建:需要额外调用url 通知Jenkins 去触发构建

  • 在构建其他项目工程后构建:可以配合其他构建触发器一起使用,但是没有解决主要工程构建的问题

  • 定期构建:会存在即使,远程仓库代码没有任何变动,也会触发构建,导致资源浪费

  • 轮循构建:相比于定时构建,轮循构建只有在代码变动的情况下,才会触发构建,减少了一部分资源的浪费,但是依赖于轮询,其定时轮询机制本身会消耗Jenkins 服务器的资源,导致一些资源上的浪费。

这四种构建触发器,基本可以满足我门日常工作的大部分需求,但其不足的地方也很明显,综合以上问题:webhook 应运而生 (这里以 gitlab 为例) webhook 拦截特定事件(如 push 代码后 ,自动触发远程构建),事件以 http 的方式通知第三方服务,如触发持续集成Jenkins。

1 安装GitLab构建触发器插件

左侧栏 Manage Jenkins(管理Jenkins)→ Manage Plugins(管理插件)

点击下方 install without restart

安装成功后不用重启Jenkins服务

2 构建webhook触发器

插件安装完毕后,项目配置目录下构建触发器器会新增一个触发器选项,选择并设置对应触发构建事件,具体配置如下图:

上述配置默认即可,点击 高级 按钮后如下图:

3 GitLab设置webhook

回到GitLab的choujiang项目中点击左侧 设置→webhooks 粘贴Jenkins的令牌到Secret token处:

提示:Webhooks的网址为Jenkins任务中构建触发器指定的地址,复制下图地址到GitLab的网址处:

上述操作表示当GitLab的choujiang项目中有新代码上传到master分支后,GitLab通过令牌通知Jenkins触发构建操作。

配置完成后点击Add webhook

提示:由于版本问题可能出现如下报错

原因:gitlab 10.6 版本以后为了安全,不允许向本地网络发送webhook请求。

解决方法:通过 Admin→设置→网络→外发请求 配置如下图:

点击保存更改

再次回到项目中重新添加并验证结果:

点击下方 Add webhook 在页面最下方验证项目钩子,如下图:

4 测试webhook

展开测试栏后点击Push events(推送事件)选项进行钩子测试:

测试结果在页面上方显示HTTP 200表示推送成功:

Jenkins验证构建操作:

小结:经测试webhook 已经生效,接下来可以试试本地push 代码检测是否生效了!

推送代码:

[root@git ~]# cd /choujiang/
[root@git choujiang]# vim index.html
[root@git choujiang]# git status
[root@git choujiang]# git add .
[root@git choujiang]# git commit -m 'modify index.html'
[root@git choujiang]# git remote
[root@git choujiang]# git push -u origin master


Jenkins验证是否自动构建:

小结:通过上述操作已经实现GitLab 利用 webhook 实现push 代码后 Jenkins 自动构建。

5 jenkins返回构建状态到GitLab

Jenkins每次自动构建完成后,jenkins可以把构建的结果反馈给 Gitlab,这样在 Gitlab 上就可以查看每一次 push 后构建的执行结果。

6 配置Jenkins与GitLab凭据

首先在Jenkins上配置,打开 Manage jenkins(管理Jenkins)→configure System(系统设置)下拉找到GitLab部分

第③步骤他需要一个API token,通过gitlab地址在结合GitLab生成的token,通过这种方式就可以访问GitLab,接下来还要去GitLab 生成一个token。

GitLab生成token:

创建后会在页面上方生成token:

复制token到Jenkins:

凭据添加成功后,回到系统设置页面,为 Gitlab 选择认证并Test Connection(测试访问):

测试成功后保存退出系统设置。

7 指定构建后操作步骤

所谓的构建后操作就是 你构建执行完以后,可以做些什么事情,我们希望某个项目构建后,就将结果返回到GitLab时,我们需要在具体项目中配置构建后操作步骤

进到项目中点击 配置→构建增加构建后操作步骤,具体配置如下图:

先择后结果如下图,点击保存

回到任务主页面,执行“立即构建”。

8 GitLab验证构建结果

构建成功后,在 Gitlab 仓库列表页面验证:

出现下图表示已跳转到jenkins:

小结:当Jenkins自动触发完构建以后,下次不用再去jenkins看页面,直接通过GitLab页面查看结果即可。

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区