首页 > 其他分享 >gitlab--needs、default

gitlab--needs、default

时间:2023-07-04 21:26:09浏览次数:35  
标签:needs script -- module echo default build test stage

needs 并行阶段

可无序执行作业,无需按照阶段顺序运行某些作业,可以让多个阶段同时运行

例如下面的 ci 文件

stages:
  - build
  - test
  - deploy

module-a-build:
  stage: build
  script: 
    - echo "hello3a"
    - sleep 10
    
module-b-build:
  stage: build
  script: 
    - echo "hello3b"
    - sleep 10

module-a-test:
  stage: test
  script: 
    - echo "hello3a"
    - sleep 10
    
module-b-test:
  stage: test
  script: 
    - echo "hello3b"
    - sleep 10

运行上面的流水线

但现在我们可能需要,当 module-a-build 运行完成之后就运行 module-a-test,当 module-b-build 运行完成之后运行 module-b-test。这时候就需要 needs 了

修改 ci 文件,修改后的如下

stages:
  - build
  - test

module-a-build:
  stage: build
  script: 
    - echo "hello3a"
    - sleep 10
    
module-b-build:
  stage: build
  script: 
    - echo "hello3b"
    - sleep 30

module-a-test:
  stage: test
  script: 
    - echo "hello3a"
    - sleep 10
  needs: ["module-a-build"] # 当 module-a-build 运行完成之后就运行 module-a-test
    
module-b-test:
  stage: test
  script: 
    - echo "hello3b"
    - sleep 10
  needs: ["module-b-build"] # 当 module-b-build 运行完成之后就运行 module-b-test

运行流水线

可以查看作业依赖项

点击依赖关系图也可以看到

制品下载

在使用needs时,可通过artifacts: trueartifacts: false来控制工件下载。 默认不指定为 true,表示下载制品

module-a-test:
  stage: test
  script: 
    - echo "hello3a"
    - sleep 10
  needs: 
    - job: "module-a-build"
      artifacts: true # 会下载 module-a-build 产生的制品

default

使用 default 可以定义每个 job 的参数,如果 job 里有,会覆盖 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

标签:needs,script,--,module,echo,default,build,test,stage
From: https://www.cnblogs.com/zouzou-busy/p/16750771.html

相关文章

  • 牛客小白月赛74 G 跳石头,搭tizi
    题目链接)数据范围,2e5区间越长越省力。对于一个起点来说,从这里搭tizi最远到达的是序列中右侧第一个大于它的数所在的位置。用单调栈可以找到这样的区间,这些区间大致如下所示。就是最多只会有包含的情况,但是不会出现交叉的情况。然后可以这样渐次登高,到达最顶端。下降的......
  • Spring Boot 3.0.0 来啦!最小依赖 Java17!升还是不升?
    Spring官方于2022年1月20日发布SpringBoot3.0.0-M1版本,预示开启了SpringBoot3.0的里程碑。官方公告下的中文评论有点东西。。。熟悉的味道!就是那个味!  分享一篇朋友对SpringBoot3.0的介绍:生还是不生?SpringBoot3版本有起飞前兆,最小依赖Java17!一直......
  • 【论文阅读】Pyramid Vision Transformer: A Versatile Backbone for Dense Predictio
    来自ICCV2021论文地址:[2102.12122]PyramidVisionTransformer:AVersatileBackboneforDensePredictionwithoutConvolutions(arxiv.org)代码地址:https://link.zhihu.com/?target=https%3A//github.com/whai362/PVT一、Motivation1.将金字塔结构引入视觉Transformer,使......
  • 关于mysql存储引擎、管理和维护概述
    数据库的存储引擎是数据库的底层软件组件,数据库管理系统使用数据库引擎进行增删查改的操作。mysql的核心就是数据库引擎。mysql5.7支持的存储引擎有innoDBMyISAMMemory可以通过showengines。InnoDB存储引擎:1.InnoDB给mysql提供了具有提交,回滚,崩溃恢复的功能的事务能力的安......
  • Markdown学习
    Markdown学习一级标题(#文字)二级标题(##文字)三级标题(###文字)四级标题(####文字)五级标题(#####文字)六级标题(######文字)/最多只支持六级标题字体helloword!helloword!helloword!helloword!引用typora真好用(>内容)分割线(---)或)(***)图片本地图片网络图片(......
  • 012双写一致性之定时更新,异步发送短信,异步秒杀逻辑前后端,课程页面前端,课程相关表分析,
    0双写一致性之定时更新#一旦加入缓存,就会出现数据不一致的请请求#双写一致性问题 -1改数据,删缓存-2改数据,改缓存-3定时更新#首页轮播图存在双写一致性问题这个问题 -以现在的技术水平(信号),做不到:改数据删缓存 -能选择的就是定时更新 -轮播......
  • mystl之deque容器
    deque代码仓库:https://github.com/sjz-hub/mystl简介deque是双端队列,c++标准STL容器的一种特点双向访问:支持在队列的两端进行高效的插入和删除操作内部插入:支持在内部进行插入和删除操作,但是性能不如list随机访问:支持[]和at(),但是性能不如vector实现原理双端队列容......
  • 7.4
     连续因子 一个正整数 N 的因子中可能存在若干连续的数字。例如630可以分解为3×5×6×7,其中5、6、7就是3个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。输入格式:输入在一行中给出一个正整数 N(1<N<231)。......
  • 常用类
    包装类的用途对于包装类来说,这些类的用途主要包含两种:1.作为和基本数据类型对应的类型存在,方便涉及到对象的操作,如Object[]、集合等的操作。2.包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法(这些操作方法的作用是在基本数据类型、包装类对象、字符串之间提......
  • 学迭代器遇到的一个问题
    事情是这样的functioniter(arr,index)index=index+1ifarr[index]thenreturnarr[index],indexendenda={1,2,3,5,4}fork,viniter,{1,2,5,6,5,4},0doprint(k)end运行结果:寄将手打的table改成a得......