前言
每个公司内部都有自己的DevOps平台,来规范需求创建、开发编译、部署、测试、上线等等流程。Beetle是转转内部的DevOps平台,很好地加强了产品的开发效率及发布质量。其中为了实现通用性,Beetle对持续集成(CI)部分的构建命令,做了一定的强制规范。但是魔方项目(内部低代码搭建平台)的构建比较复杂,不能完全符合规范及其他原因,造成这个平台不能接入,导致在开发编译部署上线阶段还经常出现问题。最后,我们尝试用Gitlab的CI/CD来先行解决这些问题。
简述Gitlab-CI流程
1、仓库根目录增加.gitlab-ci.yml
文件
2、监听.gitlab-ci.yml
文件内配置的触发时机
3、触发(例如push)并执行配置的job
设计思路
通常情况,每个仓库下都需要配置.gitlab-ci.yml
文件。
但是因为业务关系,我们并不在每个仓库下都放置一个配置文件,我这里新建了一个仓库,这个仓库用来集成所有魔方项目的构建部署工作。
这种设计并非常规设计,只是提供一种思路,大家慎重使用。
以下为详细设计思路:
1、创建一个CI/CD仓库,添加.gitlab-ci.yml
文件
2、分别创建多个仓库项目的JOB,并且将具体逻辑放到子yml文件中
3、每个JOB的触发时机为,正则匹配特定分支
或变量
的push
4、特定分支或变量规则:需要部署的项目名+是否需要安装依赖+部署分支
5、以上操作都通过api传入变量来触发
大致流程图如下:
![882c6552eb808789c502a46c1acb5ff3.png](https://i-blog.csdnimg.cn/blog_migrate/bb13f048a4b385d7368d33881e032ac9.png)
安装配置
仅以Linux环境为例:
1、在项目编译的物理机上安装gitlab-runner
sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
2、授权
sudo chmod +x /usr/local/bin/gitlab-runner
3、创建一个gitlab-ci用户
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
4、安装,并作为服务启动