gitlab-ci.yml关键字(五)tags 、only 、when

news2024/9/28 7:17:30

tags

使用Tags用于选择Runner的标签列表
我们在创建Runner 时可以给该Runner打上特定的标签,那后续流水线中的job如果需要使用特定标签的Runner执行时,就需要使用tags来标记
在这里插入图片描述
比如这里有两个标签的Runner
在这里插入图片描述
在这里插入图片描述
也可以对当前的runner进行一些配置上的设置
在这里插入图片描述

only / except

使用only / except 关键字来控制何时创建作业

  • 用于only定义作业何时运行
  • 用于except定义作业何时不运行(除此之外都运行)

only:refs/except:refs

使用only:refs和except:refs关键字来控制何时根据分支名来创建作业

示例

  • 分支名称,例如mainor my-feature-branch。
  • 匹配分支名称的正则表达式/^feature-.*/
  • 以下关键字
valuedesc
api对于由管道 API触发的管道。
branches当管道的 Git 引用是一个分支时。
chat对于使用GitLab ChatOps命令创建的管道。
external当您使用 GitLab 以外的 CI 服务时。
merge_requests对于创建或更新合并请求时创建的管道。启用合并请求管道、合并结果管道和合并
pipelines对于使用带有, 或关键字的 API创建的多项目管道。CI_JOB_TOKENtrigger
pushes对于由事件触发的管道git push,包括分支和标签。
tags当管道的 Git 引用是tag时。
triggers对于使用触发器令牌创建的管道。
job1:
  script: echo
  only:
    - main
    - /^issue-.*$/
    - merge_requests

job2:
  script: echo
  except:
    - main
    - /^stable-branch.*$/

如果作业不使用only、except或rules,则默认only设置为branches 和tags。
例如,job1和job2是等价的:

job1:
  script: echo "test"

job2:
  script: echo "test"
  only:
    - branches
    - tags

only:variables/except:variables

only:variables与except:variables可以根据CI/CD中的变量来动态地将作业添加到流水线中。下面的例子就是使用变量来控制作业的运行。

示例

variables:
  TYPE: 'running'

testCode:
  stage: test
  script: 
    - echo "只有在type变量为running时才会运行流水线"
  only:
    variables:
      - $TYPE == 'running'

在这里插入图片描述
使用时可以配置多个only:variables的条件判断,只要有一条符合条件,作业就会被创建到流水线中。

only:changes/except:changes

当 Git push 修改文件时,使用changes关键字 来判断是否修改了指定目录/文件下的内容。以此来判断是否新建任务。比如我们一般在修改了src文件下的内容之后才会执行代码扫描。

一些常用的值:

  • 文件路径
  • 个目录的通配符路径,例如path/to/directory/,或一个目录及其所有子目录,例如path/to/directory/**/
  • 具有相同扩展名或多个扩展名的所有文件的通配符glob路径,例如*.md或path/to/directory/*.{rb,py,sh}.
  • 根目录或所有目录中文件的通配符路径,用双引号引起来。例如".json"或"**/.json"。
testCode:
  stage: test
  script: 
    - echo "只有在分支修改了src文件夹之后才会执行流水线"
  only:
    refs:
      - branches
    changes:
      - src/*

在这里插入图片描述

push_audit:
  stage: test
  except:
    refs:
      - master
  script:
	- echo "当分支是master时不运行,其余场景都运行"

when

使用when来配置作业运行的条件。如果未在作业中定义,则默认值为when: on_success.
一些可能的取值:

  • on_success(默认):当早期阶段的所有任务都成功运行或者有配置allow_failure: true.时运行当前任务
  • manual:在Gitlab UI中手动触发任务
  • always:无论早期阶段的作业状态如何,都运行作业。也可用于workflow:rules.
  • on_failure:仅当至少一个早期阶段的作业失败时才运行该作业
  • delayed:将作业的执行延迟 指定的持续时间
  • never: 不要运行作业。只能在rules节或中使用workflow: rules

示例

stages:
  - build
  - cleanup_build
  - test
  - deploy
  - cleanup

build_job:
  stage: build
  script:
    - make build

cleanup_build_job:
  stage: cleanup_build
  script:
    - cleanup build when failed
  when: on_failure

test_job:
  stage: test
  script:
    - make test

deploy_job:
  stage: deploy
  script:
    - make deploy
  when: manual
  environment: production

cleanup_job:
  stage: cleanup
  script:
    - cleanup after jobs
  when: always

在此示例中,脚本:

  • cleanup_build_job仅在build_job失败时执行。
  • cleanup_job无论成功或失败,始终作为管道中的最后一步执行。
  • deploy_job当您在 GitLab UI 中手动运行它时执行。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022总结:我是怎样从一个混子到如今小有所成

前言 🍀作者简介:被吉师散养、喜欢前端、学过后端、练过CTF、玩过DOS、不喜欢java的不知名学生。 🍁个人主页:红中 🍂抽根烟,吹个牛b(不是 入门 如果硬要问我是在什么时候入门的,那就要说到高一…

MySQL添加用户及用户权限管理

目录 1、用户 <1> 用户信息 <2> 创建用户 <3> 删除用户 <4> 修改用户密码 2、用户权限管理 <1> 查看用户权限 <2> 给用户授权 <3> 回收权限 1、用户 <1> 用户信息 MySQL中的用户&#xff0c;都存储在系统数据库mysq…

机器翻译与数据集

机器翻译指的是将文本序列从一种语言自动翻译成另一种语言。 使用单词级词元化时的词表大小&#xff0c;将明显大于使用字符级词元化时的词表大小。为了缓解这一问题&#xff0c;我们可以将低频词元视为相同的未知词元。 通过截断和填充文本序列&#xff0c;可以保证所有的文…

【LeetCode每日一题】——154.寻找旋转排序数组中的最小值 II

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【题目进阶】九【时间频度】十【代码实现】十一【提交结果】一【题目类别】 二分查找 二【题目难度】 困难 三【题目编号】 154.寻找旋转排序数组中的最小…

windows下OpenCV安装教程以及vs2019配置opencv教程

文章目录一. OpenCV下载二. OpenCV安装及配置三. VS2019项目配置OpenCV一. OpenCV下载 官网地址&#xff1a;Home - OpenCV 下载地址&#xff1a;OpenCV download | SourceForge.net 二. OpenCV安装及配置 双击下载好的安装包进行安装 安装过程实际上是一个解压过程 选择…

java开发机动车考试驾照考试-科一科四考试在线题库系统

简介 本系统主要是进行科一科四考试和练习的网上考试系统&#xff0c;分为A1B1、A2B2、C1C2的科一科四考试系统&#xff0c;当学员点击开始考试&#xff0c;系统将自动生成随机题目100道&#xff08;选择题80道&#xff0c;判断题20道&#xff09;的试卷&#xff0c;考试时间4…

【数据结构】LeetCode移除元素、删除排序数组中的重复项、合并两个有序数组

目录 一、移除元素 1、题目说明 2、题目解析 二、删除排序数组中的重复项 1、题目说明 2、题目解析 三、合并两个有序数组 1、题目说明 2、题目解析 一、移除元素 1、题目说明 题目链接&#xff1a;移除元素 给你一个数组nums和一个值val&#xff0c;你需要原地移除所有数值等…

php宝塔搭建部署实战彩纸屋在线少儿编程系统源码

大家好啊&#xff0c;我是测评君&#xff0c;欢迎来到web测评。 本期给大家带来一套php开发的彩纸屋在线少儿编程系统源码&#xff0c;感兴趣的朋友可以自行下载学习。 技术架构 PHP7.2 nginx mysql5.7 JS CSS HTMLcnetos7以上 宝塔面板 文字搭建教程 下载源码&#x…

第一个完整的CMake工程

第一个完整的CMake工程一、概述二、准备工作2.1 创建工程2.2 创建源码目录三、换个地方保存目标二进制文件3.1 add_subdirectory 指令说明3.2 重设目标二进制生成目录四、如何安装4.1 目标文件的安装4.2 普通文件的安装4.3 非目标文件的可执行程序安装(比如脚本之类)&#xff1…

git 源码下载安装最新版本

问题 用yum install git 下载后查看版本 git --version 显示的版本太低&#xff0c;自己去github下载比较新的版本 解决 https://github.com/git/git/tags 查看最新的版本&#xff0c;并且复制tar.gz下载链接 wget 你复制的链接 我的例子&#xff1a;wget https://github.…

DevOps:开发运维全流程

目录 &#x1f9e1;什么是DevOps&#xff1f; &#x1f9e1;什么是CI/CD&#xff1f; &#x1f49f;这里是CS大白话专场&#xff0c;让枯燥的学习变得有趣&#xff01; &#x1f49f;没有对象不要怕&#xff0c;我们new一个出来&#xff0c;每天对ta说不尽情话&#xff01; &…

第一章 计算机网络体系结构

目录(1) 概念与功能(2) 组成与分类(3) 标准化工作与组织(4) 性能指标(5) 分层结构、协议、接口、服务(6) 7 层 OSI 参考模型(7) TCP/IP 模型(8) 五层参考模型(1) 概念与功能 1、概念 计算机网络&#xff1a;是一个将分散的、具有独立功能的计算机系统&#xff0c;通过通信设备…

RHI_Shader Compare(HLSL、GLSL、MSL 、WGSL、OpenCL) Debug All

为了后续平台能够更好的封装跨平台Shader&#xff0c;本部分主要来看一下各平台Shader的语法特点、编译方式以及Debug方式等对比。 对于各类Shader语言还是先来看一下官方的文档&#xff0c;里边有具体的阐述&#xff0c;也是比较权威的文档&#xff1a; HLSL官方文档GLSL官…

sftp的基本使用

写在前面 在工作和学习中我们经常需要在linux和本地之间上传和下载文件&#xff0c;本文就一起来看下。 1&#xff1a;连接ftp 在window执行命令sftp 用户名IP,这里的用户名是linux服务器的用户名&#xff0c;IP是linux服务器的IP&#xff0c;如下&#xff1a; [c:\~]$ sft…

mysql统计查询和一行转多行(列转行)--- help_topic

mysql.help_topic help_topic本身是Mysql一个帮助解释注释表&#xff0c;用于解释Mysql各种专有名词&#xff0c;由于这张表数据ID是从0顺序增加的&#xff0c;方便我们用于计数&#xff0c;但是8.0.17版本的只有656条数据&#xff0c;超过这个数字&#xff0c;我们就需要己自定…

【王道操作系统】1.1.1 操作系统的概念、功能和目标(系统资源的管理者、提供接口、作为扩充机器、虚拟机)

操作系统的概念、功能、目标(系统资源的管理者、提供接口、作为扩充机器) 文章目录操作系统的概念、功能、目标(系统资源的管理者、提供接口、作为扩充机器)1.常见的操作系统举例2.操作系统的层次结构3.操作系统的概念4.操作系统的功能和目标4.1 作为计算机系统资源的管理者4.2…

LeetCode题解 二叉树(七):222 完全二叉树的节点个数;110 平衡二叉树;257 二叉树的所有路径

前言 阳过之后&#xff0c;已经有一周多没有接触过一道题目了 从今日开始恢复每日一小时的刷题日常 二叉树 222 完全二叉树的节点个数 medium 无论是深度遍历&#xff08;前中后都好&#xff09;还是层序遍历&#xff0c;都可以用于求解这道题&#xff0c;只需要使用一个额…

【电力系统综合能源】“双碳“背景下|综合能源系统中的经济-二氧化碳排放协调最优调度和敏感性分析研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

2022年度回顾|在Jina AI社区连接、分享、共创

在 Jina AI 社区&#xff0c;每天都有来自世界各地的开发者加入&#xff0c;因技术产生连接&#xff0c;因连接带动分享&#xff0c;因分享促进共创。2022 的若干个闪亮的高光时刻&#xff0c;都有来自社区的支持和贡献&#xff1a;在春天&#xff0c;我们发布了 Jina 3.0&…

M1 ARM架构下, linux安装mysql的方式及潜在问题解决

下载: 1. 下载压缩包: 由于m1/m2芯片得使用aarch64架构, 所以普通的x86架构这里就完全无法使用了, 这里推荐在清华镜像网下载对应的aarch64版本: 安装包下载地址 2. Linux系统准备 默认的CentOS是自带mariadb, 和mysql的安装相冲突 , 所以需要提前删除 rpm -qa | grep mari…