乐趣区

关于gitlab:GitLab和Rainbond整合实现一体化开发环境

GitLab 善于源代码治理,Rainbond 善于利用自动化治理,整合 Gitlab 和 Rainbond 就能各取所长,本文具体讲述如何整合 Gitlab 和 Rainbond,并通过整合实现一体化开发环境。

一. 通过 Rainbond 一键装置 Gitlab

Rainbond 作为利用运行环境,Gitlab 能够运行在 Rainbond 之上,为了便于 Gitlab 装置,咱们制作了 Gitlab 安装包放到了 Rainbond 的利用市场,实现 Gitlab 的一键装置。

  1. 装置 Rainbond,装置步骤。
  2. 从利用市场搜寻“Gitlab”,点击装置,一键实现 Gitlab 所有装置和配置工作,包含数据装置和初始化。
  3. 装置实现,通过 Rainbond 治理和运维 Gitlab。

二.Rainbond 源码构建对接 Gitlab Oauth,实现一键代码部署

应用过 Rainbond 的小伙伴肯定晓得,在 Rainbond 上创立组件有三种形式:源代码创立、镜像创立、利用市场创立。

源码构建形式通过配置源码地址实现代码构建,Gitlab 尽管能够提供源码地址,但构建新利用须要拷贝源码地址及设置用户名明码,这个过程很麻烦,也容易犯错。

为了与 GitLab 配合有更好的体验,Rainbond 做了产品化的反对,通过 OAuth2.0 协定与 GitLab 进行对接。

1. 配置 GitLab Applications

进入 User Settings → Applications

选项名 填写内容 阐明
Name Rainbond 填写自定义的 Application 名称
Redirect URI https://IP:7070/console/oauth… 回跳门路,用于接管第三方平台返回的凭证
Scopes api、read_user、read_repository GitLab 的权限设置,须要开启 api、read_user、read_repository

创立后请保留 Application ID 和 Secret,前面会用到。

应用私有化部署 Rainbond 时,需配置 GItLab 容许向本地网络发送 Webhook 申请

进入 Admin area → settings → NetWork → Outbound requests

勾选 Allow requests to the local network from hooks and services 选项即可

2. 配置 Rainbond OAuth

进入 Rainbond 首页企业视图 → 设置 → Oauth 第三方服务集成 → 开启并查看配置 → 增加

选项名 填写内容 阐明
OAuth 类型 gitlab 认证的 Oauth 类型
OAuth 名称 自定义(GitLab-Demo) 填写自定义的 Oauth 服务名称
服务地址 http://xx.gitlab.com GitLab 服务拜访地址
客户端 ID 上一步获取的 Application ID GitLab 生成的 Application ID
客户端密钥 上一步获取的 Application Secret GitLab 生成的 Application Secret
平台拜访域名 应用默认填写内容 用于 OAuth 认证完回跳时的拜访地址

3.Rainbond OAuth 认证

进入 Rainbond 首页企业视图 → 集体核心 → OAuth 账户绑定 → 对应账号 → 去认证

4. 对接后成果

接下来展现 Rainbond 与 Gitlab 对接后平台的效果图。

当咱们对接胜利后,进入基于源码构建的页面会展现下图中的成果,展现所有的仓库列表。

通过 Rainbond OAuth2 与 GitLab 进行对接后,在 Rainbond 平台登录不同的账号时,需进入集体核心认证,认证后 Rainbond 会依据账号不同的权限展现不同的代码仓库。

三.Rainbond 对接 Gitlab WebHook,主动触发构建

当咱们实现整合 Rainbond 和 Gitlab Oauth,抉择指定仓库,点击创立组件,可抉择代码版本(主动获取代码分支以及 tag)和 开启主动构建。

创立实现后在组件中配置 WebHook 主动构建,提交代码,Commit 信息蕴含“@deploy”关键字,就能够触发 WebHook 主动构建。

Commit 信息关键字触发 GitLab WebHook 原生是不反对的,在这之前有社区用户提出在提交代码触发构建时,每一次提交都会触发构建,用户并不想这样做,所以 Rainbond 研发团队研发了依据提交的 Commit 信息蕴含关键字去触发主动构建。

下图中展现了用户从创立组件到继续开发的整个流程。

四. 总结

一体化开发环境的能力:

  • 代码治理:代码相干的所有治理性能,提供 web 界面的治理(Gitlab)
  • wiki:在线编辑文档,提供版本治理性能(Gitlab)
  • 问题治理:Issue 治理(Gitlab)
  • 继续集成:代码主动编译和构建(Rainbond)
  • 环境治理:疾速搭建开发或测试环境,保障开发、测试、生产环境一致性(Rainbond)
  • 架构编排:无侵入的 Service Mesh 架构编排(Rainbond)
  • 模块复用:通过组件库 实现公司外部模块、利用、服务积攒和复用,同时实现了软件资产治理(Rainbond)
  • 继续交付:开发、测试、生产环境继续交付流程(Rainbond)
  • 利用治理:利用监控和运维面板(Rainbond)
  • 团队治理:多团队治理,成员、角色治理(Rainbond)

一体化开发环境的价值:

  1. 开箱即用
  2. 让开发团队专一在写业务代码,不要在环境上浪费时间
  3. 利用粒度形象,应用简略,上手快
  4. 过程自动化,进步操作效率(继续集成、环境治理、继续交付等)

五. 感激以下开源我的项目

Rainbond:开源云原生利用治理平台 https://www.rainbond.com/

Gitlab:出名代码仓库 https://about.git‍lab.cn/

退出移动版