「SDUDOC」Gitlab CI/CD工作流搭建与配置

本文介绍了如何在SDUDOC实训中搭建和配置Gitlab CI/CD Runner,包括通过Docker安装Runner,关联项目,启用Pipeline,并详细说明了Pipeline任务的配置方法,以及如何在README中添加状态徽标。
摘要由CSDN通过智能技术生成

SDUDOC实训记录 山东大学创新实训记录

安装配置Gitlab CICD Runner

Runner是用来跑CICD Pipeline任务。没有Runner就跑不了任何pipeline。
Gitlab Runner的安装有两种方式,一种是直接安装二进制文件并运行,另一种是使用gitlab runner的docker镜像。考虑稳定性和通用性,我使用后者来进行安装。

  1. 首先机器需要安装docker,这部分很基础就不细说了。
  2. 直接输入以下命令,完成runner镜像的安装和启动:
docker run -d --name gitlab-runner --restart always \
  -v /srv/gitlab-runner/config:/etc/gitlab-runner \
  -v /var/run/docker.sock:/var/run/docker.sock \
  gitlab/gitlab-runner:latest
  1. 输入以下命令为Gitlab注册Runner:
docker run --rm -it -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register
  1. 使用管理员账号登录gitlab,进入后台管理-概览-Runner,按照Gitlab上的提示输入上一步register中所需要的相关信息:
    gitlab runner配置
  2. 添加成功后,注意修改Runner的类型和标签。
    shared - Runner将运行所有未指定的项目的作业
    group - Runner将运行群组中所有未指定项目的作业
    specific - Runner将运行指定项目的作业
    locked - 无法将Runner分配给其他项目
    paused - Runner不会接受新的作业
    标签也需要注意:如果设置了标签,那么只有同一个标签的项目才能使用这个runner,不设置则所有的项目都会使用这个runner。

为项目关联并启用Runner

配置好了runner之后,需要去项目仓库里看看是不是有runner可用了:
为项目关联并启用runner
按理来说上一步的配置完后可以直接看到已经有Available shared Runner了。如果没有,可以手动配置一个专用的Runner,步骤参照上一步。

配置CICD Pipeline任务

启用Runner后,我们可以为项目配置自定义的Pipeline了。请直接参考下面的配置文件,下面会给出解释:

default:
  image: 'node:lts'

stages:
  - test
  - build
  - deploy

cache:
  paths:
    - node_modules
    - dist

test-job:
  stage: test
  script:
    - npm install
    - npm run lint

build-job:
  only:
    - master
  stage: build
  script:
    - npm run build
  artifacts:
    name: 'bundle'
    paths:
      - dist/

deploy-job:
  only:
    - master
  stage: deploy
  script:
    - apt update && apt install sshpass -y
    - sshpass -p $PASSWORD ssh -o StrictHostKeyChecking=no $CUSTOM_USERNAME@$CUSTOM_IP "rm -rf /var/www/html/static/sdudoc || echo dir not exists"
    - sshpass -p $PASSWORD scp -o StrictHostKeyChecking=no -r ./dist $CUSTOM_USERNAME@$CUSTOM_IP:/var/www/html/static/sdudoc

在这个配置里,我们指定pipeline要做这些事情:

default:
  image: 'node:lts'

所有的job都是用node:lts这个docker镜像运行。这里注意,每个job都会pull一遍这个镜像,然后重新clone仓库代码,并且都在独立的container中完成,彼此之间相互隔离。

stages:
  - test
  - build
  - deploy

定义这个pipeline一共有这3个阶段。

cache:
  paths:
    - node_modules
    - dist

规定这两个目录为缓存,也就是说每次job完成后都会保存上传这两个目录的内容,并在下个job开始前事先把上一次保存的内容下载到将要执行的job的容器里以供其使用。

  1. 接下来就是定义每个任务要做的事了。其中only关键字指定该任务只在相应的分支上才会进行,不是该分支则会跳过这个job。
    此外,可以看到最后一步deploy-job这里使用了环境变量,这里的环境变量一般是服务器账号密码之类的敏感信息,不适合出现在代码或配置文件里,我们可以去gitlab的项目仓库上配置:
    配置变量

给项目README加上状态徽标

在Gitlab项目设置-CICD-General pipelines下面有给出链接,直接在md中引入就好:
状态徽标

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值