.gitlab-ci.yml 配置文件详解

个人主页:不爱吃糖的程序媛
‍♂️ 作者简介:前端领域新星创作者、CSDN内容合伙人,专注于前端各领域技术,成长的路上共同学习共同进步,一起加油呀!
✨系列专栏:前端面试宝典、JavaScript进阶、vue实战
资料领取:前端进阶资料以及文中源码可以在公众号“不爱吃糖的程序媛”领取

git工具文档说明:https://docs.gitlab.com/ee/ci/yaml/gitlab_ci_yaml.html

1.gitlab-ci.yml文件是什么

  • GitLab提交持续集成服务,当你在项目根目录中添加 .gitlab-ci.yml 文件,并配置项目的运行器( GitLab Runner ),那么后续的每次提交都会触发CI流水线( pipeline )的执行。

  • .gitlab-ci.yml 文件告诉运行器需要做哪些事情,默认情况下,流水线有 build 、test 、deploy 三个阶段,即 构建 、测试 、部署 ,未被使用的阶段将会被自动忽略。

  • 如果一切运行正常(没有非零返回值),您将获得与提交相关联的漂亮绿色复选标记。这样可以在查看代码之前轻松查看提交是否导致任何测试失败。

  • 大多数项目使用GitLab的CI服务来运行测试套件,以便开发人员在破坏某些内容时可以立即获得反馈。使用持续交付和持续部署将测试代码自动部署到模拟环境和生产环境的趋势越来越明显。

  • 由于将 .gitlab-ci.yml 文件存放在仓库中进行版本控制,使用单一的配置文件来控制流水线,具有读访问权限的每个人都可以查看内容,从而使其更有吸引力地改进和查看构建脚本。旧的版本也能构建成功,forks项目也容易使用CI,分支可以有不同的流水线和作业。

  • 软件开发的持续方法基于自动执行脚本,以最大程度地减少在开发应用程序时引入错误的机会。从开发新代码到部署新代码,他们几乎不需要人工干预,甚至根本不需要干预。

  • 它涉及到在每次小的迭代中就不断地构建、测试和部署代码更改,从而减少了基于已经存在bug或失败的先前版本开发新代码的机会。

一个.gitlab-ci.yml文件可能包含:

stages:
  - develop
  - test
  - master
  - demo
  - demorun

prd_develop:
  stage: develop
  tags:
    - frontdevelop
  only:
    - develop
  script:
    - rm -rf /data/build/$CI_COMMIT_REF_NAME/$CI_PROJECT_NAME/src
    - rm -rf /data/build/$CI_COMMIT_REF_NAME/$CI_PROJECT_NAME/static
    - cp -rf ./. /data/build/$CI_COMMIT_REF_NAME/$CI_PROJECT_NAME/
    - cd /data/build/$CI_COMMIT_REF_NAME/$CI_PROJECT_NAME
    # - npm install
    - npm run develop
    - ls -a

prd_test:
  stage: test
  tags:
    - fronttest
  only:
    - test
  script:
    - rm -rf /data/build/$CI_COMMIT_REF_NAME/$CI_PROJECT_NAME/src
    - rm -rf /data/build/$CI_COMMIT_REF_NAME/$CI_PROJECT_NAME/static
    - cp -rf ./. /data/build/$CI_COMMIT_REF_NAME/$CI_PROJECT_NAME/
    - cd /data/build/$CI_COMMIT_REF_NAME/$CI_PROJECT_NAME
    # - npm install
    - npm run preview
    - ls -a

2. 配置参数详解

关键字 描述
script 必须参数,运行器需要执行的脚本
image 使用Docker image镜像
services 使用Docker services镜像
before_script 作业执行前需要执行的命令
after_script 作业执行后需要执行的命令
stages 定义流水线所有的阶段
stage 定义作业所处流水线的阶段(默认test阶段)
only 限制作业在什么时候创建
except 限制作业在什么时候不创建
tags 作用使用的Runner运行器的标签列表
allow_failure 允许作业失败,失败的作业不影响提交的状态
when 什么时候运行作业
environment 作用部署的环境名称
cache 指定需要在job之间缓存的文件或目录
artifacts 归档文件列表,指定成功后应附加到job的文件和目录的列表
dependencies 当前作业依赖的其他作业,你可以使用依赖作业的归档文件
coverage 作业的代码覆盖率
retry 作业失败时,可以自动执行多少次
parallel 指定并行运行的作业实例
trigger 定义下游流水线的触发器
include 作业加载其他YAML文件
extends 控制实体从哪里继承
pages 上传GitLab Pages的结果
retry 作业失败时,可以自动执行多少次
variables 定义环境变量

你可能感兴趣的:(Git,gitlab,ci/cd,.gitlab-ci.yml)