.gitlab-ci.yml文件参数

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


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


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

文章目录

  • 一、参考文档
  • 二、保留字
  • 三、常用关键字
  • 四、注意事项
    • 1. variables注意点
    • 2. stages注意点
    • 3. stage注意点
    • 4. job注意点
    • 5. script注意点
    • 6. only和except注意点
      • 6.1 only和except的值
      • 6.2 only和except的高级策略
    • 7. when注意点


一、参考文档

  • 官方文档参考地址:https://docs.gitlab.com/ee/ci/yaml/
  • 关于.gitlab-ci.yml文件的配置和使用可参考:.gitlab-ci.yml文件配置和使用

二、保留字

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

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

三、常用关键字

本文中说的几个含义相同的词:
job、任务、作业是指一个意思
stage、阶段是指一个意思

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

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

四、注意事项

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

1. variables注意点

在variables中定义的变量,可以在后面使用${变量名}来引用定义的变量
如定义变量JAVA_HOME = /usr/lib.jvm/jdk-1.8.0.392
后续引用JAVA_HOME的值,如${JAVA_HOME}

2. stages注意点

  • stages 不定义该参数则会默认为build,test,deploy
  • 后面的任务会根据任务中定义的stage顺序来执行,stage的值就是stages中定义的值

3. stage注意点

  • stage 不定义则默认为test
  • 不同任务、相同stage的任务会并行执行
  • 同一stage的job并行运行(实际上并行也是按照字母顺序),前一个stage的job不成功结束,下一阶段的任务不会开始
  • stage相同的job在执行时虽是并行,但实际上也是以字母顺序执行,仅在gitlab界面看是并行执行

4. job注意点

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

5. script注意点

script命令正常不需要单引号或双引号包裹,但当命令中有特殊字符时,需要使用单引号或双引号包裹
如英文半角格式下的:{}[],&*#?|-<>=!

6. only和except注意点

6.1 only和except的值

only和except中可使用如下特殊关键字

关键字描述
api一个pipelines被另一个pipelines触发(非触发器api)
branches常用,当一个分支被推送上来时触发
chats当使用gitlab chatops创建作业时触发
external当使用gitlab以外的外部CI功能(如jenkins)时触发
merge_requests当merge请求创建或跟新时触发
pipelines对于多项目触发器,当使用CI_JOB_TOKEN,并使用gitlab的api创建多个pipelines时触发
pushes当用户执行git push时触发
schedules对于预定的pipelines计划,自动触发
tags当一个打了tag标记的release被提交时触发
triggers使用触发器token创建pipelines时触发
web在gitlab的web界面中的pipelines菜单页,使用run pipeline按钮时触发

6.2 only和except的高级策略

only和except还支持高级策略,四个关键字可用:refs、variables、changes、kubernetes

refs使用策略如下:

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

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

job_name:only:- /^dev-.*$/except:- tags

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

7. when注意点

when的值可选范围为:

  • on_success 默认值,当前面的stage所有任务成功结束(或执行失败但是配置了allow_failure:true)时才执行当前任务
  • on_failure 当前面任一stage中的任一任务运行失败后执行当前任务
  • always 不管前面stage任务状态如何都会执行执行当前任务
  • delayed 延迟当前任务的执行,指定延迟时间,配合start_in一起用,start_in的值小于等于1小时,(示例10 seconds,30minutes,1 hour),前面的任务结束,计时开始
  • manual 在Gitlab的UI界面手动触发执行当前任务

感谢阅读,祝君暴富!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/255910.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

架构整洁之道-软件架构-展示器和谦卑对象、不完全边界、层次与边界、Main组件、服务

6 软件架构 6.9 展示器和谦卑对象 在《架构整洁之道-软件架构-策略与层次、业务逻辑、尖叫的软件架构、整洁架构》有我们提到了展示器&#xff08;presenter&#xff09;&#xff0c;展示器实际上是采用谦卑对象&#xff08;humble object&#xff09;模式的一种形式&#xff…

【深度优先搜索】【树】【图论】2973. 树中每个节点放置的金币数目

作者推荐 视频算法专题 本博文涉及知识点 深度优先搜索 树 图论 分类讨论 LeetCode2973. 树中每个节点放置的金币数目 给你一棵 n 个节点的 无向 树&#xff0c;节点编号为 0 到 n - 1 &#xff0c;树的根节点在节点 0 处。同时给你一个长度为 n - 1 的二维整数数组 edges…

寒假作业

手写盗版微信登入界面 #include "mainwindow.h" #include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);this->resize(421,575);this->setFixedSize(421,575);th…

05-Java原型模式 ( Prototype Pattern )

原型模式 摘要实现范例 原型模式&#xff08;Prototype Pattern&#xff09;是用于创建重复的对象&#xff0c;同时又能保证性能原型模式实现了一个原型接口&#xff0c;该接口用于创建当前对象的克隆当直接创建对象的代价比较大时&#xff0c;则采用这种模式 例如&#xff0c…

分享88个文字特效,总有一款适合您

分享88个文字特效&#xff0c;总有一款适合您 88个文字特效下载链接&#xff1a;https://pan.baidu.com/s/1Y0JCf4vLyxIJR6lfT9VHvg?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不…

SpringMVC第二天

一、SSM整合【重点】 1 SSM整合配置 问题导入 请描述“SSM整合流程”中各个配置类的作用&#xff1f; 1.1 SSM整合流程 创建工程 SSM整合 Spring SpringConfig MyBatis MybatisConfig JdbcConfig jdbc.properties SpringMVC ServletConfig SpringMvcConfig 功能模块…

【ES】--Elasticsearch的分词器深度研究

目录 一、问题描述及分析二、analyze分析器原理三、 multi-fields字段支持多场景搜索(如同时简繁体、拼音等)1、ts_match_analyzer配置分词2、ts_match_all_analyzer配置分词3、ts_match_1_analyzer配置分词4、ts_match_2_analyzer配置分词5、ts_match_3_analyzer配置分词6、ts…

Python爬虫http基本原理#2

Python爬虫逆向系列&#xff08;更新中&#xff09;&#xff1a;http://t.csdnimg.cn/5gvI3 HTTP 基本原理 在本节中&#xff0c;我们会详细了解 HTTP 的基本原理&#xff0c;了解在浏览器中敲入 URL 到获取网页内容之间发生了什么。了解了这些内容&#xff0c;有助于我们进一…

Elasticsearch:使用 LangChain 文档拆分器进行文档分块

使用 Elasticsearch 嵌套密集向量支持 这个交互式笔记本将&#xff1a; 将模型 “sentence-transformers__all-minilm-l6-v2” 从 Hugging Face 加载到 Elasticsearch ML Node 中使用 LangChain 分割器将段落分块成句子&#xff0c;并使用嵌套密集向量将它们索引到 Elasticse…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Toggle组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Toggle组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Toggle组件 组件提供勾选框样式、状态按钮样式及开关样式。 子组件 仅当Toggl…

计算机网络-差错控制(纠错编码 海明码 纠错方法)

文章目录 纠错编码-海明码海明距离1.确定校验码位数r2.确定校验码和数据的位置3.求出校验码的值4.检错并纠错纠错方法1纠错方法2 小结 纠错编码-海明码 奇偶校验码&#xff1a;只能发现错误不能找到错误位置和纠正错误 海明距离 如果找到码距为1&#xff0c;那肯定为1了&…

掌握高效秘诀:揭秘从容应对多任务管理的终极妙招

多任务管理是非常重要的技能&#xff0c;然而如何平衡任务和时间仍然是许多人的挑战。进行多任务管理一般可以从设定目标和清单、排除无关任务、执行任务的时间块化、利用团队合作、学会任务切换几个方面出发&#xff0c;在本文中我们将详细介绍如何利用有效的多任务管理技巧来…

Guava:Cache强大的本地缓存框架

Guava Cache是一款非常优秀的本地缓存框架。 一、 经典配置 Guava Cache 的数据结构跟 JDK1.7 的 ConcurrentHashMap 类似&#xff0c;提供了基于时间、容量、引用三种回收策略&#xff0c;以及自动加载、访问统计等功能。 基本的配置 Testpublic void testLoadingCache() th…

【linux系统体验】-archlinux简易折腾

archlinux 一、系统安装二、系统配置及美化2.1 中文输入法2.2 安装virtualbox增强工具2.3 终端美化2.4 桌面面板美化 三、常用命令 一、系统安装 安装步骤人们已经总结了很多很全: Arch Linux图文安装教程 大体步骤&#xff1a; 磁盘分区安装 Linux内核配置系统&#xff08;…

WordPress后台编辑个人资料页面直接修改用户名插件Change Username

前面跟大家介绍了『如何修改WordPress后台管理员用户名&#xff1f;推荐2种简单方法』一文&#xff0c;但是对于新站长或者有很多用户的站长来说&#xff0c;操作有点复杂&#xff0c;所以今天向大家推荐一款可以直接在WordPress后台编辑个人&#xff08;用户&#xff09;资料页…

MySQL数据库-索引概念及其数据结构、覆盖索引与回表查询关联、超大分页解决思路

索引是帮助mysql高效获取数据的数据结构,主要用来提高检索的效率,降低数据库的IO成本(输入输出成本&#xff08;Input-Output Cost&#xff09;),同时通过索引对数据进行排序也能降低数据排序的成本,降低了CPU的消耗。 Mysql的默认存储引擎InnoDB&#xff0c;InnoDB采用的B树的…

文献阅读:Mamba: Linear-Time Sequence Modeling with Selective State Spaces

文献阅读&#xff1a;Mamba: Linear-Time Sequence Modeling with Selective State Spaces 1. 文章简介2. 方法介绍 1. State Space Models2. Selective State Space Models 3. 实验考察 & 结论 1. 简单问题上的验证2. 实际场景效果 1. 语言模型2. DNA模型3. 语音模型 3. 细…

CentOS 8 安装配置 Hadoop3.3.6 伪分布式安装方式(适用于开发和调试)

1.配置服务器ssh免密登录&#xff0c;否则后面启动会报错&#xff1a;尝试通过SSH连接到主机出现认证错误的提示 配置服务器ssh免密登录&#xff1a; 1.生成SSH密钥对&#xff08;如果尚未生成&#xff09;&#xff1a; 执行下面的命令生成密钥对&#xff0c;一直回车即可 ssh…

jvm问题自查思路

本文聊一下最近处理了一些jvm的问题上&#xff0c;将这个排查和学习过程分享一下&#xff0c;看了很多资料&#xff0c;最终都会落地到几个工具的使用&#xff0c;本文主要是从文档学习、工具学习和第三方技术验证来打开认知和实践&#xff0c;希望有用。 一、文档 不仅知道了…

以用户为中心,酷开科技荣获“消费者服务之星”

在企业顺应消费升级的道路中&#xff0c;企业自身不仅要着力强化对于消费者服务意识的提升&#xff0c;并且要树立诚信自律的行业示范带头作用&#xff0c;助力消费环境稳中向好&#xff0c;不断满足人民群众对美好生活的期待。企业的发展需要消费者的认可&#xff0c;酷开科技…