栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

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

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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中所需要的相关信息:
  2. 添加成功后,注意修改Runner的类型和标签。
    shared - Runner将运行所有未指定的项目的作业
    group - Runner将运行群组中所有未指定项目的作业
    specific - Runner将运行指定项目的作业
    locked - 无法将Runner分配给其他项目
    paused - 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中引入就好:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/974664.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号