首页
学习
活动
专区
圈层
工具
发布

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

on_success仅在作业成功时上载工件。这是默认值。on_failure仅在作业失败时上载工件。always 上载工件,无论作业状态如何。...and 4d’ ‘3 weeks and 2 days’ 一周后过期 job: artifacts: expire_in: 1 week ---- artifacts:reports 用于从作业中收集测试报告...在GitLab的UI中显示这些报告。注意:无论作业结果(成功或失败),都将收集测试报告。...artifacts:reports:junit 收集junit单元测试报告,收集的JUnit报告将作为工件上传到GitLab,并将自动显示在合并请求中。...-*.xml 注意:如果您使用的JUnit工具导出到多个XML文件,则可以在一个作业中指定多个测试报告路径,它们将被自动串联到一个文件中.

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

    使用 YAML 文件配置 Jenkins 流水线

    工作在项目上的所有人都应该能修改它,如果他们希望执行 `npm install` 或 `yarn install` ### 安装Jenkins和Docker 安装 Jenkins 非常简单,直接从官方教程选择一种方式安装...它能将 GitHub 的组织中符合规则的项目自动添加到 Jenkins 中。唯一的约束就是在每一个分支下都必须有一个 Jenkinsfile,用于描述如何构建项目。...如果你对 Jenkins 流水线是如何工作的一无所知,就更容易了。这样,修改或增加一个新的 Docker 镜像就变得不简单,也容易导致混淆。...由于我们有不同语言的项目,我们使用 Docker 来构建测试环境。WoloxCI 假设有一个 Dockerfile 要构建,并将在容器内运行所有指定的命令。...通过 Jenkins 的共享库技术,将构建逻辑从 Jenkinsfile 中移到了 YAML 文件中。

    5.5K40

    使用spring提高rails开发效率

    rails开发者都有着这样类似的经历: pair写了一个测试 运行测试 等待 该我来编写产品代码 运行测试 等待 代码有bug 测试失败 修复测试 运行测试 等待 测试通过,yeah!...他们的原理都是预先把rails环境启动起来,后面在运行测试,执行rake task时从这个启动好的进程fork一个进程,在这个进程中执行操作。...: spring rspec 当第一次使用spring运行测试,rake taks, db migration时,spring会自动在后台load rails 环境,因此执行速度也很慢,但是当再次执行时...,spring会从先前的进程中fork出load好的rails环境,执行速度就变得飞快!...###已知问题 把 require 'rspec/autorun'从spec_helper中删掉,否则,spec会被执行两次,而且第二次会由于找不到url helper method而失败。

    4K60

    Effective Testing with RSpec 3(介绍)

    我们的测试再次被打破!”“为什么套件需要这么长时间才能运行?”“无论如何,我们从这些测试中获得了什么价值?” 多年过去了,技术发生了变化,但关于自动测试的抱怨是一样的。...如何使用本书 通过本书,您将分三个阶段学习RSpec 3: •第一部分:介绍练习,让您熟悉RSpec •第二部分:跨越几个章节的工作示例,以便您可以在一个有意义的大小项目中看到RSpec •第III-V...典型的代码片段将包含一行或多行Ruby代码,供您在文本编辑器中输入,以便以后运行它们。...如果没有TDD,您可以通过手动运行或编写一次性测试工具来检查程序的行为。如果您打算在不久之后废弃该程序,这些方法都可以。但是,当长期维护是一个优先事项时,TDD提供了重要的好处。...当我们有针对特定受众的内容时 - 例如来自旧版RSpec的人或不熟悉Web开发的人 - 我们会将这些内容放在侧边栏中。

    2.7K20

    JetBrains RubyMine 2022 Mac中文激活版(RailsRuby开发工具)

    ,超级方法,测试,用法,实现,是一款功能强大的代码编辑工具。...类型支持新版本的RubyMine为Minitest / Test :: Unit测试中的夹具调用提供了改进的代码洞察力。...编辑器现在为这些调用提供自动完成功能,并且可以将您导航到相关的数据库字段滑轨使用“一切运行”来运行RAIls任务在v2019.3之前的版本中,可以通过专用弹出窗口运行RAIls生成器和Rake任务。...刺激和榆木新的RAIls项目在2019.3中,您可以将Stimulus或Elm指定为新RAIls项目的JavaScript库。...调试器RAIls控制台的交互式调试现在,RubyMine允许您在RAIls控制台中进行调试时检查程序的状态。为此,只需在遇到断点后切换到“ 交互式控制台”选项卡即可。

    1.4K10

    RubyMine 2022 for Mac(强大的RailsRuby开发工具)v2022.3.1中文激活版

    ,超级方法,测试,用法,实现,是一款功能强大的代码编辑工具。...类型支持新版本的RubyMine为Minitest / Test :: Unit测试中的夹具调用提供了改进的代码洞察力。...编辑器现在为这些调用提供自动完成功能,并且可以将您导航到相关的数据库字段滑轨使用“一切运行”来运行RAIls任务在v2019.3之前的版本中,可以通过专用弹出窗口运行RAIls生成器和Rake任务。...刺激和榆木新的RAIls项目在2019.3中,您可以将Stimulus或Elm指定为新RAIls项目的JavaScript库。...调试器RAIls控制台的交互式调试现在,RubyMine允许您在RAIls控制台中进行调试时检查程序的状态。为此,只需在遇到断点后切换到“ 交互式控制台”选项卡即可。

    1.5K30

    Ansible和Docker的作用和用法

    这种更简单的操作模式让我把精力集中在如何将我的技术设施私有化,提高了我的工作效率。与 Unix 的模式一样,Ansible 提供大量功能简单的模块,我们可以组合这些模块,达到不同的工作要求。...当我把应用代码从远端 clone 下来,或者上传到远端时,我就不再需要提供 git 所需的证书了,我的 ssh 代理会帮我通过 git 主机的身份验证程序的。...=test bundle exec rake db:create db:migrate && bundle exec rspec'>/test-terrabox ;\ echo '. /.profile...当 Docker 容器里面的应用需要响应来自外界的请求时,这个端口可用于反向代理或负载均衡。...Docker 容器内运行 Rails 应用 没有本地 Docker 镜像,从零开始部署一个中级规模的 Rails 应用大概需要100个 gems,进行100次整体测试,在使用2个核心实例和2GB内存的情况下

    2.8K20

    Google 是如何设计 Ruby Serverless Runtime 的?

    在坚持我们社区所熟悉的 Ruby 习惯、实践和工具的同时,我们还必须重新思考如何在几乎每个层次上进行 web 应用程序开发,从代码到依赖、持久化、测试等等。...确实,这是 Google Ruby团队成员在使用其他框架(包括 Rails)时遇到的一个问题:很难测试应用程序的初始化过程,因为框架的初始化通常发生在测试之外,在它们运行之前。...这允许我们在测试中运行初始化,甚至重复它多次,允许不同方面的测试: require "minitest/autorun" require "functions_framework/testing"...该方法和其他 helper 方法定义在 FunctionsFramework::Testing 模块中,可以包含在 minitest 或 rspec 测试中。...为了在 Ruby 中定义健壮的函数,我们不得不进行一些创新,但在表示函数参数时,已经有现成的库或新兴标准可供遵循。

    2.8K60

    GitLab 是如何用 Headless Chrome 测试的

    下面的例子介绍了GitLab如何切换到Headless Chrome GitLab最近从PhantomJS转变为Headless Chrome,用于前端测试和RSpec功能测试(ruby测试框架)。...当直接运行在Chrome的时候,这个方法已经提高写测试和调试的能力。还迫使我们去面对和清理一些在测试中的hacks(技巧)。...;在执行破坏性操作(如删除分支或从组中删除用户)时单击事件。在Poltergeist下,一个.click动作会自动点击alert()和confirm()的模态框。...结果 关于性能,改变之前通过对10个RSpec测试集进行非科学分析来衡量变化,改变后也通过10个测试。分解在这些管道之间添加或删除的任何测试。...致谢 我衷心希望这些信息对想从PhantomJS切换到headless Chrome,并使用Rails应用程序的团队有用。

    3.9K80

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

    欢迎来到RSpec! 在本书的这一部分中,你将在编写前几个工作测试时熟悉该框架。 首先,你将安装RSpec并编写你的前几个specs - RSpec的测试术语。...在本章中,你将看到: •如何安装RSpec并编写你的第一个specs •如何使用describe,和用它来组织你的specs •如何验证期望的结果 •如何解释测试失败 •如何使你的specs不受重复设置代码的影响...我们说生产效率很高,因为关于它的一切 - 它的样式,API,库和设置 - 都是为了在编写出色的软件时为你提供支持。 编写有效的测试可帮助你实现运送应用程序的目标。...,您将练习几种有助于您有效测试的习惯: •当您准确描述您希望程序执行的操作时,您可以避免过于严格(并且在无关的细节更改时失败)或过于宽松(并且从不完整的测试中获得错误的信心)。...是的,这很愚蠢,但它会让这些例子保持简短,我们在写这一章时感到很饿。 三明治最重要的特性是什么? 面包? 条件? 不,关于三明治最重要的是它应该味道好。 让我们用RSpec语言这么说吧。

    2.6K30

    React 测试驱动教程

    Webpack 就像 Rails 中的 Assets Pipeline 一样。...我们还定义了 3000 端口,使得更像是 Rails 开发的体验。 最后,在 webpack 配置文件中添加一个 resolve 标记,使进口文件看起来更直观。...Enzyme 会将 shallow rendered 组件包裹进一个特殊的 wrapper 中,进而让我们可以测试。如果你用过 Rails,这看起来像是 Capybara 中的 page 对象。...在组件渲染时给评论列表一些 style,然后我们就可以知道 shallow render 是如何处理这些样式的了。...结论 我们已经建立了一个坚实的测试环境,可以根据你的项目具体需求去改变和发展。在下一次的文章中,我将花更多的时间在特殊场景的测试,还有如何测试 Redux,我更喜欢 flux 的实现。

    5K20

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

    了解Verizon如何 使用GitLab 将重建工作从30天减少到8小时以下。...当然,命令可以在存储库中直接执行代码(./configure;make;make install)或运行脚本(test.sh)。 乔布斯被拾起运动员和跑步者的环境中执行。...如果作业的成功取决于这些命令的成功或失败,则可以将命令作为单独的 script: 项目运行,或者 exit 1 在需要时将适当的命令添加到命令字符串中。...web 对于使用GitLab UI中的“运行管道”按钮创建的管道,请从项目的CI / CD>“管道”部分。 merge_requests 对于在创建或更新合并请求时创建的管道。...这种关系可以描述为: (任何参考)或(任何变量)或(任何变化)或(如果Kubernetes处于活动状态) 在以下示例中,如果满足以下任一条件,test则不会创建作业: 管道运行在master

    23.8K20

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

    背景 加入外卖上海团队时,共2名QA同学,分别负责App与M站的功能测试,自动化测试停留在学习北京侧接口测试框架的阶段,实效上近乎为0,能力结构上在代码这部分是明显薄弱的。...自身应该算是“纯粹”的测试人员,在“测试开发”这重职业并不普及的年代,一直希望有种语言可以让测试的开发效率超过研发,Ruby做到了。 人性化的语法,各种糖。...通过ci_reporter,可以方便地将Rspec的报告格式转为JUnit的XML格式,在Jenkins中做对应的展示。 ?...解决接口多版本测试的例子 移动端API自动化中存在的问题就是,一个接口会存在多个版本并存的情况,有header中内容不同的,或formdata内容不同的情况,在接口回归中必须都要照顾到,在Coral-API...质量工作的自动化 都知道在美团点评,QA还担负着质量控制的工作,当功能+自动化+性能+其他测试工作于一身,而且是1:8的测试开发比下,如何去关注质量的改进?答案只有:工具化、自动化。

    2.5K30

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

    从 7.12 版本开始,GitLab CI 使用YAML文件 (.gitlab-ci.yml) 来管理项目配置。该文件存放于项目仓库的根目录,它定义该项目如何构建。 ?...中没有被跟踪的文件: rspec: script: test cache: untracked: true 缓存binaries下没有被git跟踪的文件: rspec: script...默认key是默认设置的这个项目缓存,因此默认情况下,每个pipelines和jobs中可以共享一切,从GitLab 9.0开始。...手动操作指令可以是可选的或阻塞。在定义了手动执行的那个stage中,手动操作指令将会停止pipline中的自动执行指令。...从GitLab 8.14开始,当在environment中定义了一个stop操作,GitLab将会在相关联的分支本删除时自动触发一个stop操作。

    25.2K86

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

    needs 并行阶段 可无序执行作业,无需按照阶段顺序运行某些作业,可以让多个阶段同时运行。...local 引入同一存储库中的文件,使用相对于根目录的完整路径进行引用,与配置文件在同一分支上使用。 ci/localci.yml: 定义一个作业用于发布。...管道触发 当GitLab从trigger定义创建的作业启动时,将创建一个下游管道。...[微服务架构] 父子管道: 在同一项目中管道可以触发一组同时运行的子管道,子管道仍然按照阶段顺序执行其每个作业,但是可以自由地继续执行各个阶段,而不必等待父管道中无关的作业完成。...strategy: depend将自身状态从触发的管道合并到源作业。 ? 在下游项目中查看管道信息 ? 在此示例中,一旦创建了下游管道,该staging将被标记为成功。

    3.5K30

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

    默认key是默认设置的这个项目缓存,因此默认情况下,每个pipelines和jobs中可以共享一切,从GitLab 9.0开始。...从GitLab 8.14开始,当在environment中定义了一个stop操作,GitLab将会在相关联的分支本删除时自动触发一个stop操作。...当GIT_STRATEGY设置为clone或fetch时,可以使用GIT_CHECKOUT变量来指定是否应该运行git checkout。如果没有指定,它默认为true。...GIT_SUBMODULE_STRATEGY变量用于在构建之前拉取代码时,Git子模块是否或者如何被引入。...如果队列中有多个jobs,或者您正在重试旧的job,则需要测试的提交应该在克隆的Git历史记录中存在。设置GIT_DEPTH太小的值可能会导致无法运行哪些旧的commits。

    6.1K20
    领券