.gitlab-ci.yml文件参数

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

文章目录


一、参考文档

二、保留字

.gitlab-ci.yml文件中的job名称可自定义,但下面表中的参数不可以用作job名称

以下参数都是.gitlab-ci.yml文件中非必须的参数

关键字 描述
after_script 定义在每个job之后运行的命令,会在job执行结束后执行,可以是数组或多行字符串
before_script 定义在每个job之前运行的命令,会早于job执行,可以是数组或多行字符串
cache 定义一组文件列表,后续运行中使用
image docker镜像使用
services docker镜像使用
stages 定义构建阶段,阶段按定义顺序的优先级运行,同一阶段的job并行运行(实际上并行也是按照字母顺序),前一个阶段的job不成功结束,下一阶段的job不会开始,同一阶段的job在一个执行成功结束前下一个不会开始。若没有定义stages,job的stage则会默认定义为build,test,deploy。若job中未定义stage,则默认为test
variables 定义构建变量(可全局使用)
types 为stages别名,现已废除

三、常用关键字

以下为.gitlab-ci.yml文件的常用关键字:

关键字 描述
after_script 定义在每个job之后运行的命令,会在job执行结束后执行,可以是数组或多行字符串
allow_failure 允许job失败,不影响任务job的commit状态
before_script 定义在每个job之前运行的命令,会早于job执行,可以是数组或多行字符串
cache 定义一组文件列表,后续运行中使用
coverage 作业的代码覆盖率,正则表达式是唯一有效的值,'/code coverage: \d+.\d+/'
dependencies job依赖关系,可通过该参数实现相互传递artifacts
environment 任务部署的环境变量
except 指定哪些分支不触发job,即该任务在指定的分支上不执行
image docker镜像使用
include 允许job加载其他的yaml文件
only 指定哪些分支会触发任务,可定义多个
pages 上传gitlab pages的结果
parallel 指定并行运行的job实例
retry 指定job失败时可自动执行多少次
script 唯一一个不许参数,需要执行的脚本代码
services docker镜像使用
stages 定义流水线所有阶段,阶段按定义顺序的优先级运行,同意阶段的job并行运行(实际上并行也是按照字母顺序),前一个阶段的job不成功结束,下一阶段的job不会开始,同一阶段的job在一个执行成功结束前下一个不会开始。若没有定义stages,job的stage则会默认定义为build,test,deploy。若job中未定义stage,则默认为test
stage job所处阶段,默认为test
tags 定义一列tags,指定选择哪个runner运行该任务(前提是runner有设置tag)
trigger 指定下游流水线的触发器
types 为stages别名,现已废除
variables 定义构建变量(定义在job外则可全局使用,定义在job下则仅作用于job内)
when 指定何时运行job,可选范围为:on_success(默认值,当前一个stages的所有任务成功时才执行),on_failure(当前面stages

四、注意事项

参数配置请注意以下几点:

1. stages注意点

  • stages不指定则会默认为build,test,deploy
  • stage不指定则默认为test
  • stage相同的job在执行时虽是并行,但实际上也是以字母顺序执行,仅在gitlab界面看是并行执行

2. job注意点

这里的job是指作业的job名称,每个job部分都有一个job名称,如果想跳过该job的部分不执行,可以在job名称前使用英文字符.来实现,如job名称为job-build,那么可以用.job-build来实现跳过该部分任务

2. script注意点

script命令正常不需要单引号或双引号包裹,但当命令中有特殊字符时,需要使用单引号或双引号包裹

如英文半角格式下的:{}[],&*#?|-<>=!

3. only和except注意点

refs使用策略如下:

  • only和except可同时使用
  • only和except同时指定同一个分支时,only有效,except跳过
  • only和except可用正则表达式
  • only和except可用特殊字符branches、tags、triggers等
  • only和except可用指定仓库地址但不为forks的仓库

其中正则和特殊字符的使用如下:

yml 复制代码
job_name:
  only:
    - /^dev-.*$/
  except:
    - tags

正则表达式需要用//包起来,且上述正则表达式表示匹配以dev开头的分支进行执行job


感谢阅读,祝君暴富!

相关推荐
李纲明1 小时前
WordPress 后台登录马上被踢回登录页:Cookie 域、HTTPS、盐值和页面缓存怎么查
运维·缓存·https·php·wordpress·cookie
todoitbo1 小时前
在 Ubuntu ARM64 上运行 Q1 V3.0 MuJoCo 模型:加载、步进和单执行器响应
linux·运维·ubuntu·ai·机器人·仿真教程·启元
AR-26710-1 小时前
Linux Day26——传输层与三次握手
linux·运维
金銀銅鐵2 小时前
[Java] 用 GUI 展示 EnumSet 增减元素时的内部变化(下)
java·后端·ai编程
AI人工智能+电脑小能手2 小时前
一次请求打几个下游,这个Java并行任务工具类6个方法按序聚合
java·线程池·并发编程·1024程序员节·批量处理·并行任务
额额额对了2 小时前
嵌入式 Linux 实战:i.MX6ULL 上的 CAN 通信与摄像头采集
linux·运维·服务器
RFID科技的魅力3 小时前
2026 年 RFID 资产标签批量制作怎么做?RFID 标签打印机实操指南
运维·人工智能·嵌入式硬件·物联网
灯澜忆梦3 小时前
【Linux】#10 | Linux 终端实用快捷键 + 安装应用
linux·运维·服务器
paopaokaka_luck4 小时前
心理咨询管理系统(WebSocket实时沟通、基于用户的协同过滤、 ECharts多维分析、 预约业务流程、预约校验与定时处理)
java·vue.js·spring boot·mysql·spring·echarts·1024程序员节
2301_32241428044 小时前
springboot农产品交易平台的设计与实现08055-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·spring boot·redis·mysql·tomcat·maven·mybatis