当前位置: 首页 > news >正文

基于 Rainbond 的 Pipeline(流水线)插件

背景

Rainbond 本身具有基于源码构建组件的能力,可以将多种编程语言的代码编译成 Docker 镜像,但是在持续集成的过程中,往往会需要对提交的代码进行静态检查、构建打包以及单元测试。之前由于 Rainbond 并没有 Pipeline 这种可编排的机制,所以用户往往只能通过集成外部的 CI ,如 Jenkins、Gitlab CI 等。这给开发者的使用增加了门槛。

所以为了更有效的帮助开发人员做代码测试,编译缓存,甚至代码质量分析等,结合 Rainbond 的插件体系,拓维信息基于 GitLab CI 能力实现了更加灵活,更加多样化的源码构建的功能。

流水线插件

功能

基于 Rainbond 的插件体系,拓维信息贡献的流水线插件主要功能包括以下五部分:

  1. 流水线管理: 开发者使用流水线模块自定义应用服务所需要的流水线,以及流水线的各个阶段

  1. 应用服务: 应用服务就是 Gitlab 上某一个项目的代码仓库,应用于开发, 管理代码仓库。通常对应Rainbond 中的组件,如果一个仓库下包含多个微服务,则可能对应多个 Rainbond 组件

  1. 代码管理: 管理代码仓库中各分支与 CI 的持续集成流程,可以查看到对应代码仓库分支的最近提交和持续集成的历史信息。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BDTAjYMe-1678090437324)(https://static.goodrain.com/wechat/5.12/4.png)]

  1. 镜像仓库: 持续集成生成的 image 制品和版本均会在此展示,可以在这里将生成的镜像手动部署到指定环境。

  1. 部署历史: 镜像仓库版本部署到 Rainbond 应用下的历史记录,可以从部署详情中跳转到对应组件进行管理。

安装

流水线插件已经发布到应用市场,可通过开源应用商店一键安装。目前该插件使用需要满足以下前提条件:

  • Rainbond v5.12.0 版本
  • 有可用的 Gitlab 和 Gitlab Runner

Gitlab 和 Gitlab runner 也可通过开源应用商店一键安装。安装流程如下:

  1. 平台管理-应用市场-开源应用商店 中搜索 GitlabGitlab runner 一键安装并进行配置;
  2. 平台管理-应用市场-开源应用商店 中搜索 Pipeline 一键安装;

具体配置和使用参考:Pipeline 使用文档

使用

在插件全部运行起来以后,回到团队视图进行刷新,可以看到左侧边栏有 Rainbond 流水线 选项,点击即可进入。流水线插件主要使用流程如下图所示,主要分为四步:创建流水线模版->创建应用服务->构建->部署到平台

创建流水线模版

用户可以在模版中定义流水线的各个阶段,默认提供了NodeJS、Java、Go、Python的流水线模版,可以在内部自定义流水线的各个阶段。

创建应用服务

在有了流水线模版之后,我们需要去创建一个应用服务。应用服务实际上是将代码仓库和流水线模版关联起来,最终实现该代码仓库的代码通过该流水线模版进行构建。

构建代码

代码管理->分支管理中手动触发流水线构建,构建过程可以在代码管理->持续集成中查看。构建完成后,镜像会推送到流水线模版中定义的镜像仓库地址。可以在镜像仓库查看镜像制品。

部署业务

完成第一次构建后,可以在镜像仓库查看到镜像信息,此时选择部署,可以选择该团队下的应用,组件的名称将以应用服务的名称进行定义。部署完成后,可以在部署历史中查看到该次部署详情,点击查看详情即可跳转到对应组件进行管理,后续提交代码即可实现自动构建和部署。

http://www.lryc.cn/news/32335.html

相关文章:

  • ASGARD:单细胞导向的药物发现
  • js-DOM03-事件
  • 天梯赛题目练习L1-007--L1-009
  • 来吧!接受Kotlin 协程--线程池的7个灵魂拷问
  • Dynamic Movement Primitives (DMP) 学习
  • 2023王道考研数据结构笔记第五章——树
  • setState函数是异步的还是同步的?
  • vue3+ts:约定式提交(git husky + gitHooks)
  • TSP 问题求解的最好方法 LKH
  • RocketMQ5.1控制台的安装与启动
  • 【java基础】类型擦除、桥方法、泛型代码和虚拟机
  • 十家公司有九家问过的软件测试面试题,最后一题我猜你肯定不会
  • C++核心知识(三)—— 静态成员(变量、函数、const成员)、面向对象模型(this指针、常函数、常对象)、友元、数组类、单例模式
  • RocketMQ【3】Rocketmq集群部署(多master多slave)异步复制
  • 魏玛早春 木心
  • 关于Scipy的概念和使用方法及实战
  • 第二章Linux操作语法1
  • linux内核调度问题分析
  • C语言-基础了解-25-C强制类型转换
  • 【Python】如何安装 Allure 工具进行自动化测试
  • nginx七大核心应用场景详解 解决生产中的实际问题 二次开发扩展
  • Java 整合 Redis
  • Django实践-03模型-02基于admin管理表
  • 如何安装python
  • java String类 万字详解(通俗易懂)
  • Hive拉链表
  • day1 开发我的第一个MyBatis程序
  • 【CDP】更改solr 存储路径导致ranger-audit 大量报错问题解决
  • JavaScript基础一、简介
  • Qt音视频开发20-vlc内核动态保存录像文件(不需要重新编译源码)