gitlab-ci自动部署(三)

gitlab-ci自动部署(三)

安装runner这边就不细说了,详情可以看我的上一篇博客https://blog.csdn.net/weixin_37934134/article/details/80736337

下面来说说CI/CD是怎么实现的:

一、登录gitlab-runner机器

切换runner普通用户

[root@localhost ~]# su - gitlab-runner

二、编写.gitlab-ci.yml文件

随便创建一个目录,叫什么无所谓

[gitlab-runner@localhost ~]$ mkdir git

将gitlab上想要发布的项目克隆到这个目录里

[gitlab-runner@localhost git]$ git clone [email protected]:xxx/xxx.git

因为我们的项目是大工程,里面带着很多子工程,所以就需要通过yml文件,将项目分离出去

比方说我们想发布bb项目,但是bb项目属于aa这个大项目的子项目,所以就进aa大工程目录下

在项目目录里面创建一个.gitlab-ci.yml文件,如下:

gitlab-ci自动部署(三)_第1张图片

[gitlab-runner@localhost ~]$ cat .gitlab-ci.yml

job 1:
  stage: test
  script: 
    - git subtree push -q --prefix=bb [email protected]:bb1/bb.git dev
  only:
    - dev
  tags:
    - shell

 

这样就可以将bb项目分离出去,相当于创建了一个新的项目

进入bb目录,也编写.gitlab-ci.yml文件,这个就是我们需要编译的脚本,中间可以穿插maven、node和shell的一系列命令

[gitlab-runner@localhost bb]$ cat .gitlab-ci.yml 
job 1:
  stage: build
  script: 
    - rm -rf /opt/M2_REPO/com/bb/*
    - mvn clean package -P test -Dmaven.test.skip
    - bash -x /opt/bb/shell/bb.sh
  only:
    - dev
  tags:
    - shell

编写完yml文件后都需要提交下

git add .

git commit -m "add gitlab-ci.yml"

git push origin dev

另外包括传包,启动等命令都可以在yml文件里面体现,这样只要dev分支有commit的改变了,gitlab-ci就会自动创建job来自动发布

gitlab-ci自动部署(三)_第2张图片

你可能感兴趣的:(自动化工具)