一体化开发测试环境
GitLab 擅长源代码管理,Rainbond 擅长应用自动化管理,整合 Gitlab 和 Rainbond 就能各取所长,本文详细讲述如何整合 Gitlab 和 Rainbond,并通过整合实现一体化开发环境。
通过 Rainbond 一键安装 Gitlab
Rainbond 作为应用运行环境,Gitlab 可以运行在 Rainbond 之上,为了便于 Gitlab 安装,我们制作了 Gitlab 安装包放到了 Rainbond 的应用市场,实现 Gitlab 的一键安装。
-
安装 Rainbond,安装步骤。
-
从应用市场搜索“Gitlab”,点击安装,一键完成 Gitlab 所有安装和配置工作,包括数据安装和初始化。
-
安装完成,通过 Rainbond 管理和运维 Gitlab。
Rainbond 源码构建对接 Gitlab Oauth,实现一键代码部署
使用过Rainbond的小伙伴一定知道,在Rainbond上创建组件有三种方式:源代码创建、镜像创建、应用市场创建。
源码构建方式通过配置源码地址实现代码构建,Gitlab 虽然可以提供源码地址,但构建新应用需要拷贝源码地址及设置用户名密码,这个过程很麻烦,也容易犯错。
为了与 GitLab 配合有更好的体验,Rainbond 做了产品化的支持,通过 OAuth2.0 协议与 GitLab 进行对接。
配置 GitLab Applications
进入 User Settings → Applications
选项名 | 填写内容 | 说明 |
---|---|---|
Name | Rainbond | 填写自定义的 Application 名称 |
Redirect URI | https://IP:7070/console/oauth/redirect | 回跳路径,用于接收第三方平台返回的凭证 |
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 选项即可
配置 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 认证完回跳时的访问地址 |
Rainbond OAuth 认证
进入 Rainbond 首页企业视图 → 个人中心 → OAuth 账户绑定 → 对应账号 → 去认证
对接后效果
接下来展示 Rainbond 与 Gitlab 对接后平台的效果图。
当我们对接成功后,进入基于源码构建的页面会展示下图中 的效果,展示所有的仓库列表。
通过 Rainbond OAuth2 与 GitLab 进行对接后,在 Rainbond 平台登录不同的账号时,需进入个人中心认证,认证后 Rainbond 会根据账号不同的权限展示不同的代码仓库。
Rainbond 对接 Gitlab WebHook,自动触发构建
当我们完成整合 Rainbond 和 Gitlab Oauth ,选择指定仓库,点击创建组件,可选择代码版本(自动获取代码分支以及 tag)和 开启自动构建。
创建完成后在组件中配置 WebHook 自动构建,提交代码,Commit 信息包含“@deploy”关键字,就可以触发 WebHook 自动构建。
Commit 信息关键字触发 GitLab WebHook 原生是不支持的,在这之前有社区用户提出在提交代码触发构建时,每一次提交都会触发构建,用户并不想这样做,所以 Rainbond 研发团队研发了根据提交的 Commit 信息包含关键字去触发自动构建。
下图中展示了用户从创建组件到持续开发的整个流程。

总结
一体化开发环境的能力: