gitlab学习
文章目录
gitlab 学习
GitLab是一个代码仓库,用来管理代码。Jenkins是一个自动化服务平台,可以运行各种自动化构建、测试或部署任务。所以这两者结合起来,就可以实现开发者提交代码到GitLab,Jenkins以一定方式自动运行测试、构建和部署的任务,帮组开发团队更高效的集成和发布代码。
管理gitlab
|
|
gitlab 日常使用
- 新建项目
- 创建用户
- 用户群组
持续集成,持续部署,持续交付的概念
持续集成关注点在于尽早的发现项目整体运行的问题,尽早的解决问题
持续交付:做出来的功能逻辑上没有错误,但是用户不一定会满意, 如果不满意,用户流失严重,持续交付的关注点在于尽早的收集用户反馈信息
项目的各个版本之间间隔时间太长,对用户反馈感知迟钝,因此持续交付是比较必要的
持续集成工具
jenkins和 hudson
两者关系是 jenkins 是 大部分原始开发人员组成, 甲骨文收购 sun 并且继承了 hudson代码库, hudson 由甲骨文公司管理
构建原理:
- 上传代码后 会触发钩子持续
- 钩子持续 去通知 jenkins
- jenkins 调用git /svn 插件 获取仓库的源码
- jenkins 调用 maven插件进行打包,发布war包
- 部署 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代码提交
webhook(网络钩子),一般与jenkins联合使用,gitlab的某个项目的代码更新了后就触发 webhook中配置的 url ,这个url一般是某一个jienkins中某一个job的url。即gitlab代码更新后就会触发 jinkins的任务自动进行构建。
文章作者 LYR
上次更新 2021-08-14