.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定义环境变量
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序媛夏天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值