首页 > 其他分享 >gitlab--services、environment、inherit

gitlab--services、environment、inherit

时间:2023-08-12 18:22:36浏览次数:30  
标签:script -- gitlab test job build services tags before

services

services 关键字定义了一个 Docker 镜像,该镜像在链接到 image 关键字定义的 Docker 镜像的 job 期间运行。这允许您在构建期间访问服务镜像。

服务镜像可以运行任何应用程序,但最常见的用例是运行数据库容器,例如:

例如,每次构建项目时,使用现有镜像并将其作为附加容器运行比安装 mysql 更容易、更快。

不仅限于数据库服务,您可以在 .gitlab-ci.yml 中添加任意数量的 services 或手动修改 config.toml。 在 Docker Hub 或您的私有容器镜像中找到的任何镜像,都可以用作服务

inherit

使用或禁用全局定义的环境变量(variables)或默认值(default)。

之前我们使用 default 的例子如下

default: # 定义了一个默认的参数
  tags: # 如果 job 里没有 tages,就使用这个 tags
    - build
  retry: # 如果 job 里没有 retry,就使用这个 tags
    max: 2
  before_script: # 如果 job 里没有 before_script,就使用这个 tags
    - echo "before_script"

stages:
  - build
  - test

build:
  stage: build
  before_script:
    - echo "我是 job 里的"
  script:
    - echo "我是 build 的 job"

 
test:
  stage: test
  script:
    - echo "test 的 job"

这样的话,build 和 test 的 job 都会使用 default 下定义的值,如果我们不想某些 job 使用的话,就可以使用 inherit 了,inherit 的值有 true、false 决定是否使用,默认为true

我们也可以取消,如下

default: # 定义了一个默认的参数
  tags: # 如果 job 里没有 tages,就使用这个 tags
    - build
  retry: # 如果 job 里没有 retry,就使用这个 tags
    max: 2
  before_script: # 如果 job 里没有 before_script,就使用这个 tags
    - echo "before_script"

stages:
  - build
  - test

build:
  stage: build
  before_script:
    - echo "我是 job 里的"
  script:
    - echo "我是 build 的 job"
  

 
test:
  stage: test
  tags:
    - build
  script:
    - echo "test 的 job"
  inherit:
    default: false # 不使用定义的 default,全部
    variables: false # 不使用定义的全局变量,全部

 运行流水线,查看结果

我们也可以使用其中的某些默认值或者变量,如下

default: # 定义了一个默认的参数
  tags: # 如果 job 里没有 tages,就使用这个 tags
    - build
  retry: # 如果 job 里没有 retry,就使用这个 tags
    max: 2
  before_script: # 如果 job 里没有 before_script,就使用这个 tags
    - echo "before_script"

stages:
  - build
  - test

build:
  stage: build
  before_script:
    - echo "我是 job 里的"
  script:
    - echo "我是 build 的 job"
  

 
test:
  stage: test
  tags:
    - build
  script:
    - echo "test 的 job"
  inherit:
    default: # 使用默认值下面的两个变量 before_script 和 retry
      - before_script
      - retry
    variables: false # 不使用所有环境变量

流水线运行结果

标签:script,--,gitlab,test,job,build,services,tags,before
From: https://www.cnblogs.com/zouzou-busy/p/16755700.html

相关文章

  • Java BigDecimal 分析
    1.使用理由:Double类和Float类可以对16位有效数字的数进行精确运算,但对于超过16位有效数字的数,会丢失精度。所以使用BigDecimal类来精确计算超过16位有效数字的数。2.引入包:importjava.math.BigDecimal;3.构造方法:BigDecimal(E):创建一个具有参数所指定类型的对象使用样......
  • Mybatis如何添加映射接口和映射文件?
    Mybatis是一种半ORM框架,需要我们手动编写SQL语句。在启动时,它会将SQL语句等信息读取到内存中,便于操作数据库时进行参数解析、执行SQL和结果封装。使用过Mybatis的都知道,它有两种方式编写SQL语句:xml映射文件映射接口方法上的注解在启动Mybatis时,可以通过Configuration的addM......
  • 某公司笔试题 - 字符串反转(附python代码)
    #接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)importrestr1=input("请输入一个只有小写字母的字符串:")#通过正则表达式只匹配输入字符串中的小写字母str2=re.sub('[^a-z]','',str1)print(str2)iflen(str2)>0andlen(str2)......
  • 链表和数组的区别
    链表和数组的区别链表逻辑上相邻的元素在物理位置上不一定相邻。优点:插入、删除效率高,不需要一个连续的很大的内存缺点:查找某一个位置的元素效率低。数组优点:存取速度快缺点:1.整块连续空间,占很大内存。2.插入或删除数据效率低、不方便链表数组逻辑上相......
  • python - 将数据附加到 Pandas 全局数据框变量不会持久
    https://www.coder.work/article/5047954我正在尝试使用pandasdataframe全局变量。但是,当我尝试将数据框重新分配或附加到全局变量时,数据框是空的。任何帮助表示赞赏。importpandasaspddf=pd.DataFrame()defmy_func():globaldfd=pd.DataFrame()fo......
  • VMware中的虚拟机Debian10的服务器配置,使主机(win10)能够通过本地域名(如www.xxx.com)
    VMware中的虚拟机Debian10的服务器配置,使主机(win10)能够通过本地域名(如www.xxx.com)访问该服务器安装过程下载debian-10.13.0-amd64-DVD-1.iso(可选下载链接:Indexof/cdimage/archive(debian.org))在VMware中安装虚拟机这里点击浏览,选择下载好的镜像文件,然后......
  • 【LGR-149-Div.3】洛谷基础赛 #2 & qw Round -1
    T1签到。T2送分题。T3大模拟,但是TLE两个点。#include<bits/stdc++.h>#definelllonglong#defineintlonglong#definereregisterusingnamespacestd;constintN=1e5+5,INF=0x3f3f3f3f;intn;queue<string>Q;map<string,int>zt;//0不在;1排队;2游玩;......
  • 注解和反射
    注解和反射1、注解什么是注解?类似@Override注解,注解可以被其他程序所读取,进行信息处理1.1内置注解就是jdk自带的注解如@Override:定义在java.lang.Override中,只适用于修辞方法,表示当前被修辞的方法用于从写父类中的另一个方法​ @Deprecaed:该注解的作用是修辞方法,属性,类,告诉......
  • DataFrame新增行及global变量的使用
    Global变量在函数体或类外定义的变量,若想在函数体或类中使用,必须先声明使用的是体外global变量,声明格式:global变量名importpandasaspdimportnumpyasnpimportmath#global变量df_result=pd.DataFrame(columns=['LABELS','DISTANCE'])#计算距离defdist(x):......
  • 操作系统第一章
    系统调用是操作系统为应用程序使用内核功能所提供的接口。广义指令就是系统调用命令,而命令解释器属于命令接口,shell是命令解释器,它也属于命令接口。系统中的缓存全部由操作系统管理,对用户是透明的,操作系统不提供管理系统缓存的系统调用。引入多道程序设计后,程序的执行就失去了......