gitlab 学习

GitLab是一个代码仓库,用来管理代码。Jenkins是一个自动化服务平台,可以运行各种自动化构建、测试或部署任务。所以这两者结合起来,就可以实现开发者提交代码到GitLab,Jenkins以一定方式自动运行测试、构建和部署的任务,帮组开发团队更高效的集成和发布代码。

gitlab教程

管理gitlab

1
2
3
gitlab-ctl stop
gitlab-ctl start
gitlab-ctl restart

gitlab 日常使用

  1. 新建项目
  2. 创建用户
  3. 用户群组

持续集成,持续部署,持续交付的概念

参考教程

持续集成关注点在于尽早的发现项目整体运行的问题,尽早的解决问题

持续交付:做出来的功能逻辑上没有错误,但是用户不一定会满意, 如果不满意,用户流失严重,持续交付的关注点在于尽早的收集用户反馈信息

项目的各个版本之间间隔时间太长,对用户反馈感知迟钝,因此持续交付是比较必要的

持续集成工具

jenkins和 hudson

两者关系是 jenkins 是 大部分原始开发人员组成, 甲骨文收购 sun 并且继承了 hudson代码库, hudson 由甲骨文公司管理

构建原理:

  1. 上传代码后 会触发钩子持续
  2. 钩子持续 去通知 jenkins
  3. jenkins 调用git /svn 插件 获取仓库的源码
  4. jenkins 调用 maven插件进行打包,发布war包
  5. 部署 Tomcat 应用服务器
系统结构总述
  • 创建虚拟机,安装linux系统
  • 版本控制子系统
    • subversion 服务器
    • 项目对应版本库
    • 版本库中钩子程序
  • 持续集成子系统
    • jdk
    • tomcat
    • maven
    • jenkins
      • svn插件
      • maven插件
      • deploy to web container 插件
jenkins 部署实现

参考视频

jenkins 远程构建原理:

jenkins 有一个 远程的 url地址, 访问 jenkins 的一个接口,就会触发构建程序

webhook原理

GitHub可以配置一个 webhooks , 你需要填写 payload URL ,

提交代码后,GitHub 就可以回调这个 payload URL

参考文章

  • git push之后,Git如何通知Jenkins对应Job的工作区实时构建

webhook与异步编程中"订阅-发布模型"非常类似,一端触发事件,一端监听执行。

飞书监听 GitHub代码提交

飞书机器人监听GitHub代码提交

webhook(网络钩子),一般与jenkins联合使用,gitlab的某个项目的代码更新了后就触发 webhook中配置的 url ,这个url一般是某一个jienkins中某一个job的url。即gitlab代码更新后就会触发 jinkins的任务自动进行构建。