当前位置: 首页 > article >正文

如何编写GitLab-CI配置文件

创建文件

在根目录新建.gitlab-ci.yml文件.

该文件与项目其他文件一样, 同样受到版本控制, 所以可以在不同的分支下, 配置不同的持续集成脚本

YAML语法

配置文件遵循YAML语法, 关于该语法的内容, 自行搜索

参考 YAML 语言教程

关键词

根主要关键词一览

关键词含义可选备注
image声明使用的Docker镜像为空时使用默认镜像该镜像应当满足脚本执行的环境依赖
servicesDocker镜像使用的服务, 通过链接的方式来调用所需服务可空常用于链接数据库
stages定义构建阶段为空时, 单纯定义jobs项目的构建分为多个阶段, 例如: 安装依赖/准备, 编译, 测试, 发布等, 同时每个阶段包含若干任务
before_script定义每个job之前执行的脚本可空每个job启动时会先执行该脚本
after_script定义每个job之后执行的脚本可空同上
variables定义变量可空同上
cache定义与后续job之间应缓存的文件可空同上

Demo:

image: aipline
services:- mysql- redis
stages:- build- test- deploy
before_script:- bundle install  
after_script:- rm secrets
cache:paths:- binaries/- .config

Jobs中的关键词

jobs中存在一些与根中相同的关键词, 这些一旦定义, 则会向前覆盖, 即根中定义的则不会在该job执行

job 这里译为任务

关键词含义可选备注
image声明任务使用的Docker镜像为空时使用根中的定义该镜像应当满足脚本执行的环境依赖
services任务中Docker镜像使用的服务, 通过链接的方式来调用所需服务可空常用于链接数据库
stage所属构建阶段为空时则不使用stages一个任务属于一个构建阶段
before_script定义每个job之前执行的脚本可选如果在job中定义则会覆盖根中的内容
script定义每个job执行的脚本必须
after_script定义每个job之后执行的脚本可选同上
variables定义任务中使用的变量可选同上
cache定义与后续job之间应缓存的文件可选同上
only指定应用的Git分支可选可以是分支名称, 可用正则匹配分支, 也可是tags来指定打过标签的分支
except排除应用的Git分支可选同上
tags指定执行的GitLab-Runners可选通过匹配Runners的标签选定
allow_failure允许失败默认为false如果允许失败, 本次任务不会影响整个构建的结果
when定义合适执行任务默认为alwayson_success, on_failure, always or manual可选
dependencies定义合任务所需要的工件可空需要首先定义工件
artifacts定义工件可空工件中指定的目录会在任务执行成功后压缩传到GitLab, 后面需要该工件的任务执行时, 再自行下载解压
environment定义环境可空在部署任务中, 定义该任务所属的环境

Demo:

installing-dependencies:script:- composer install --prefer-dist --optimize-autoloader -n --no-interaction -v --no-suggest- composer dump-autoload --optimizeartifacts:name: "vendor"untracked: trueexpire_in: 60 minspaths:- vendor/    
docker-build-image:    stage: testonly:- masterexcept:- developtags:- ruby- postgresallow_failure: truedependencies:- installing-dependenciesscript:        - docker build -t registry.com/mops/image:latest .- docker push registry.com/mops/image:latest 

注意:

  1. jobs的名称不能重名
  2. 同一阶段中的任务, 是并行执行的
  3. 上一阶段所有任务执行完后, 才会进入下一阶段
  4. 定义工件时, 务必定义工件的过期时间, 否则工件会一直寸在GitLab上, 占用空间
  5. 如果需要在任务中传递文件, 优先选择使用 dependencies (结合artifacts)

验证配置文件合法性

在GitLab中, 打开 /ci/lint网址, 将配置文件粘贴在些, 进行验证

相关文档

  • 配置构建任务
  • Configuration of your jobs with .gitlab-ci.yml
http://www.lryc.cn/news/2395349.html

相关文章:

  • 生成式人工智能:重构软件开发的范式革命与未来生态
  • 关于 java:4. 异常处理与调试
  • Java基础 Day26
  • android lifeCycleOwner生命周期
  • 高防IP能抗住500G攻击吗?
  • 工作流引擎-10-什么是 BPM?
  • day1-小白学习JAVA---JDK安装和环境变量配置(mac版)
  • 每日温度(力扣-739)
  • QT中子线程触发主线程弹窗并阻塞等待用户响应-传统信号槽实现
  • HarmonyOS鸿蒙系统深度运维指南
  • SpringBoot多租户系统的5种架构设计方案
  • 数据分析实战1(Excel制作报表)
  • 本地部署大模型llm+RAG向量检索问答系统 deepseek chatgpt
  • 设备健康管理的战略升维:用预测性维护重构企业竞争力
  • Redis事务详解:原理、使用与注意事项
  • 提升 GitHub Stats 的 6 个关键策略
  • CSS Animation 详解
  • LabVIEW 中内存释放相关问题
  • 【HarmonyOS 5】鸿蒙中的UIAbility详解(三)
  • 基于内存高效算法的 LLM Token 优化:一个有效降低 API 成本的技术方案
  • vue-11(命名路由和命名视图)
  • (附代码)自定义 LangChain 文档分割器,深入探索 LangChain 文档分割策略与应用
  • Python打卡训练营Day42
  • 基于微信小程序的scratch学习系统
  • MATLAB实战:机器学习分类回归示例
  • 动态库导出符号与extern “C“
  • 小知识:STM32 printf 重定向(串口输出)--让数据 “开口说话” 的关键技巧
  • `docker commit` 和 `docker save`区别
  • 【C++ 多态】—— 礼器九鼎,釉下乾坤,多态中的 “风水寻龙诀“
  • SCSAI平台面向对象建模技术的设计与实现