首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

GitLab CI CD管道配置参考 .gitlab-ci.yml文件定义字段

注意: 如果您有一个 从GitLab提取镜像的存储库 ,则可能需要在项目的 “设置”>“存储库”>“从远程存储库中提取”>“触发管道以进行镜像更新”中 启用管道触发 。...介绍 管道配置从作业开始。作业是.gitlab-ci.yml文件的最基本元素。 工作是: 定义了约束,指出应在什么条件下执行它们。...失败的作业不会影响提交状态。 when 什么时候开始工作。也可用:when:manual和when:delayed。 environment 作业部署到的环境的名称。...总共允许100个include,但是重复的include被视为配置错误。 从GitLab 12.4开始,解析所有文件的时间限制为30秒。...script script是工作所需的唯一必需关键字。这是一个由Runner执行的shell脚本。

22.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Effective Testing with RSpec 3(介绍)

    如果您是RSpec的长期用户,您可以从第III,IV和V部分开始。这些包含您在野外可能遇到的情况的详细配方。 稍后,您可以回到本书的开头,重温RSpec的理念。...您可以轻松练习BDD所偏好的从外到内的方法,在那里您从验收测试开始并向内移动到单元测试.2在每个级别,您的表达测试将指导您的软件设计。 但是,RSpec和BDD不是同义词。...我们是谁 Myron Marston于2009年开始使用RSpec,并于2010年开始为其做出贡献。自2012年底以来,他一直是其主要的维护者。...从那时起,他就使用和教授RSpec来测试从微型微控制器到全功能桌面和Web应用程序的所有内容。...你是谁 我们希望本书对广泛的开发人员非常有用,从刚刚开始使用RSpec的人到使用它编写成千上万的测试的人。也就是说,我们做了一些假设,以防止本书过于陷入介绍性材料。 首先,我们假设您熟悉Ruby。

    2K20

    Effective Testing with RSpec 3 (第一部分:入门)

    欢迎来到RSpec! 在本书的这一部分中,你将在编写前几个工作测试时熟悉该框架。 首先,你将安装RSpec并编写你的前几个specs - RSpec的测试术语。...一项好的测试将至少提供以下一项好处: •设计指导:帮助你将所有这些奇妙的想法提炼成可运行,可维护的代码 •安全网:在客户开始之前在代码中发现错误 •文档:捕获工作系统的行为以帮助其维护人员 当你按照本书中的示例进行操作时...RSpec.describe 'An ideal sandwich' do it 'is delicious' do end end 开发人员一直以这种方式使用RSpec; 他们从一个轮廓开始...一个示例组定义了您正在测试的内容 - 在这种情况下,三明治 - 并将相关规范保存在一起。 嵌套的块 - 从它开始的'美味' - 是三明治使用的一个例子。 (其他测试框架可能会将此称为测试用例。)...以期望开始的线是期望。 这些就像其他测试框架中的断言一样,但是(正如我们稍后将会看到的)还有更多的技巧。

    2K30

    GitLabCI系列之流水线语法第四部分

    如果未全局定义或未按job定义则禁用该功能。 ---- cache:paths 使用paths指令选择要缓存的文件或目录,路径是相对于项目目录,不能直接链接到项目目录之外。...cache:key变量可以使用任何预定义变量,默认default ,从GitLab 9.0开始,默认情况下所有内容都在管道和作业之间共享。...在这里定义了全局的cache,如果文件发生变化则值为 rspec-xxx111111111222222 ,未发生变化为rspec-default。...开始第二个作业test,此时会把当前目录中的target目录删除掉(因为做了git 对比)。 ? 获取到第一个作业生成的缓存target目录。 ?...开始第三个作业,同样先删除了target目录,然后获取了第二个作业的缓存。最后生成了当前的缓存。 ? Runner缓存 在做本次实验的时候我现在本地runner清除了项目的工作目录和历史缓存。

    2.3K10

    GitLabCI系列之流水线语法第五部分

    要仅在作业失败时上传工件: job: artifacts: when: on_failure ---- artifacts:expire_in 制品的有效期,从上传和存储到GitLab的时间开始算起...expire_in的值以秒为单位的经过时间,除非提供了单位。...2 days’ 一周后过期 job: artifacts: expire_in: 1 week ---- artifacts:reports 用于从作业中收集测试报告,代码质量报告和安全报告...使用文件名模式( junit: rspec-*.xml ),文件名数组( junit: [rspec-1.xml, rspec-2.xml, rspec-3.xml] )或其组合( junit: [rspec.xml...定义一个空数组将跳过下载该作业的任何工件不会考虑先前作业的状态,因此,如果它失败或是未运行的手动作业,则不会发生错误。 如果设置为依赖项的作业的工件已过期或删除,那么依赖项作业将失败。 ?

    3.4K20

    logstash input插件开发

    gem install bundle gem install rspec 从example开始 1 clone logstash-input-example git clone https:/...方法,获取到指定bucket里的数据,并在每次定时任务执行结束后设置marker保存在本地,再次执行时从marker位置获取数据,以实现数据的增量同步。...,在该方法中可以直接使用从配置文件读取并赋值的变量,完成cos client的初始化,代码如下: # 1 初始化用户身份信息(appid, secretId, secretKey) cred...的key以prefix开始 @listObjectsRequest.setPrefix(@prefix) # 设置最大遍历出多少个对象, 一次listobject最大支持1000...是一个ruby测试库,通过bundle命令执行rspec: bundle exec rspec 如果cos.rb中的代码没有语法或运行时错误,则会出现如果信息表明测试成功: Finished in 0.8022

    4.1K61

    实现一个简单的Database4(译文)

    本文是第四篇,主要是使用rspec对目前实现的功能进行测试并解决测试出现BUG Part 4 我们的第一个测试(和BUG) 我们已经获得插入数据到数据库并打印所有数据的能力。...我使用rspec来写我的测试,因为我对rspec很熟悉,它的语法也相当易读。...", "db > ", ]) end end 这个简单的测试是确认我们的输入能够获取返回结果。并确保能通过测试: bundle exec rspec ..../spec/main_spec.rb:48:in `block (2 levels) in top (required)>' 如果是我们自己人工来测试,当我们打印行数据时,会看到有一些奇怪的字符(例子中...它返回一个指向子字符串开始位置的指针。 我们可以在每个文本值上调用strlen(),看看它是否太长(strlen()函数,获取字符串的长度)。

    1.5K20

    Gitlab CI 配置文件 .gitlab-ci.yaml 详解(上)

    如果想要快速的了解GitLab CI ,可查看快速引导。 从 7.12 版本开始,GitLab CI 使用YAML文件 (.gitlab-ci.yml) 来管理项目配置。...从GitLab 9.0开始,pipelines和job就默认开启了缓存 如果cache定义在jobs的作用域之外,那么它就是全局缓存,所有jobs都可以使用该缓存。...默认key是默认设置的这个项目缓存,因此默认情况下,每个pipelines和jobs中可以共享一切,从GitLab 9.0开始。...可以从GitLab界面中手动执行deploy_jobs。 Manual actions GitLab 8.10 开始引入手动执行。GitLab 9.0 开始引入手动停止。...从GitLab 8.14开始,当在environment中定义了一个stop操作,GitLab将会在相关联的分支本删除时自动触发一个stop操作。

    24.2K86

    开发者死后,他的开源项目会有人继续维护吗?

    去年,当程序员 Azer Koçulu 从互联网上删除了一个叫做 Leftpad 的代码库后时,它造成了涟漪效应,据说在 Facebook、Netflix和其他很多地方都引起了令人头痛的问题。...Rspec-Given的代码托管在代码托管和协作站点 GitHub 上,后者目前拥有 6700 万个代码库。...Weirich 在 GitHub 上的 Rspec-Given 页面是其他 Ruby 用户报告错误或自愿帮助改进代码的主要地方。...他还必须说服分发代码的“包管理系统”Ruby Gems运营商使用他的 Rspec-Given 版本,而不再是 Weirich 的版本,以便使所有用户都能访问的变更。...但是许多开源项目本质上是以业余爱好开始的,所以程序员可能不会想到转移所有权,想到时已经为时已晚。

    1.3K100

    “小众”之美——Ruby在QA自动化中的应用

    不涉及科学计算,不涉及服务开发,在没有这些需求的情况下,Python和Java不再是必需。 脱离了开发语言的平台,但在不关注白盒测试的情况下并无太多不妥。...接口测试类文件(HTTP接口调用为例)生成的模板如下,修改对应的接口信息即可,支持DB验证(代码块p这部分是目前唯一需要写Ruby代码的地方,当然这是非必需项)。...通过ci_reporter,可以方便地将Rspec的报告格式转为JUnit的XML格式,在Jenkins中做对应的展示。 ?...尤其Ruby属于易学难精的那种,从脚本语言应用层次上升到动态语言设计层次还是需要一定的学习曲线的,也就是说对于使用者来说是简单的,对于设计者的能力要求较高,就像流传的Ruby程序员的进阶过程就是魔法师的养成史...正因为有特色的技术,才值得去研究和学习,就像它的设计者所说,目的就是为了让开发人员觉得编程是件快乐的事情。做了这么些年的测试,还能够不停止写代码的脚步,也是因为几年前开始接触Ruby。

    1.9K30

    码农,你真的了解TDD和BDD吗?

    不过,这只是对“驱动”一词最粗浅的理解。 首先,我来问你一个问题,测试驱动开发,从哪里开始呢?很多人会说,测试驱动开发不是从测试开始的吗?...今天最流行的 BDD 框架应该是 Cucumber,它的作者就是 RSpec 的作者之一 Aslak Hellesøy。...从最开始基于 Ruby 的 BDD 框架发展成今天,Cucumber 已经变成了支持很多不同程序设计语言的 BDD 测试框架,比如常见的 Java、JavaScript、PHP 等等。...所以,只要你想,完全可以采用 BDD 的方式进行从单元测试到系统测试所有类型的测试。 所以我们会看到,在行业里还有一些 BDD 风格的单元测试框架,其中最典型的就是 RSpec。...我从 RSpec 的文档上截取了一段代码,你可以感受一下。

    98410

    GitLab 是如何用 Headless Chrome 测试的

    下面的例子介绍了GitLab如何切换到Headless Chrome GitLab最近从PhantomJS转变为Headless Chrome,用于前端测试和RSpec功能测试(ruby测试框架)。...可以看到PhantomJS的过滤标签是水平渲染的,侧边栏的图标分开渲染,全局搜索区域从导航栏溢出等问题。 尽管看上去很丑,但是大部分情况下我们仍然用它运行功能测试。...从2.1.0版本开始, Karma-chrome-launcher插件非常快速地支持无头模式,而且能大部分代替掉PhantomJS launcher。...后端功能测试(RSpec + Capybara) 我们的功能测试是使用RSpec+Capybara(https://github.com/teamcapybara/capybara),进行完整的数据库,...结果 关于性能,改变之前通过对10个RSpec测试集进行非科学分析来衡量变化,改变后也通过10个测试。分解在这些管道之间添加或删除的任何测试。

    3.2K80

    通过 .gitlab-ci.yml配置任务

    .gitlab-ci.yml 从7.12版本开始,GitLab CI使用YAML文件(.gitlab-ci.yml)来管理项目配置。该文件存放于项目仓库的根目录,它定义该项目如何构建。...默认key是默认设置的这个项目缓存,因此默认情况下,每个pipelines和jobs中可以共享一切,从GitLab 9.0开始。...可以从GitLab界面中手动执行deploy_jobs。 Manual actions GitLab 8.10 开始引入手动执行。GitLab 9.0 开始引入手动停止。...从GitLab 8.14开始,当在environment中定义了一个stop操作,GitLab将会在相关联的分支本删除时自动触发一个stop操作。...expire_in允许设置设置artifacts的存储时间,从它们被上传存储到GitLab开始计算。 可以通过job页面的Keep来修改有效期。

    5.7K20

    用 GitLab 做 CICD 是什么感觉,太强了!!

    GitLab CI/CD 介绍 软件开发的持续方法基于自动执行脚本,以最大程度地减少在开发应用程序时引入错误的机会。从开发新代码到部署新代码,他们几乎不需要人工干预,甚至根本不需要干预。...GitLab CI/CD 快速开始 .gitlab-ci.yml文件告诉GitLab Runner要做什么。...rspec 和 rubocop,在每个作业开始执行前,要先执行before_script下的命令 2.2....借助Auto DevOps,软件开发过程的设置变得更加容易,因为每个项目都可以使用最少的配置来完成从验证到监视的完整工作流程。只需推送你的代码,GitLab就会处理其他所有事情。...Kubernetes集群 本例将创建并部署一个从GitLab模板创建的应用 3.1.

    10K43
    领券