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

选项名填写内容阐明
NameRainbond填写自定义的 Application 名称
Redirect URIhttps://IP:7070/console/oauth...回跳门路,用于接管第三方平台返回的凭证
Scopesapi、read_user、read_repositoryGitLab的权限设置,须要开启 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.comGitLab 服务拜访地址
客户端ID上一步获取的Application IDGitLab 生成的 Application ID
客户端密钥上一步获取的Application SecretGitLab 生成的 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.gitlab.cn/