当前位置: 首页 > 知识库问答 >
问题:

了解Pact Broker工作流

丰佐
2023-03-14

非常清楚地知道,Pact的集成方式有许多工作流类型,我正在尝试将一个常见的工作流可视化。我为协议经纪人工作流程开发了这个泳道。

  1. 如何在较旧的提供程序生成上运行提供程序验证?
  2. 标记如何改变?
  3. 何时将webhook创建回提供程序?
  4. 如果不同的提供程序具有不同的基URL(即生成系统),该怎么办?
  5. 如果提供程序失败,新提供程序如何生成有关使用者的警报?
  6. 我对这个流的思考正确吗?

我尝试从Webhooks中收集我的理解,使用pact(消费者团队与提供者团队不同),并将验证结果发布给pact代理。假设我对问题的思考是正确的,并且没有完全错过一些文档,那么我很乐意为社区编写一个建议工作流文档。

共有1个答案

拓拔俊艾
2023-03-14

您的泳道图很好地描述了工作流,但需要注意的是,一旦所有内容都设置好了,就很少从代理手动启动提供程序构建。

提供者从来不会在过程中通知使用者验证失败(或成功)。如果是这样的话,那么您就可以使用循环构建了。

我是这样想的:

  • 使用者测试创建一个契约(契约文件)。
  • 此步骤还验证使用者是否可以使用满足该约定的提供程序(使用模拟提供程序)。
  • 然后,使用者将此协议文件提供给代理(如果配置为这样做)
  • 现在有了一个新协议,代理(如果已配置)可以触发提供者构建
  • 提供者的CI基础结构构建提供者,并运行协议验证
  • 提供者的CI基础结构(如果已配置)将验证结果告知代理。

代理和提供者的构建系统是唯一知道验证结果的比特--此时它不会传递回消费者。

将验证的状态反馈给使用者实际上是一件非常重要的事情,因为它告诉使用者它们是否可以安全地部署。这是目前契约工作流程中缺失的部分,我正在尽快工作以纠正这一点。

目前,由于验证状态是您可能希望了解的信息--特别是如果您无法看到提供商的CI基础结构--您可能希望检查pact build徽章,这是检查代理的一种较轻松的方式。

 类似资料:
  • 我有以下代码: } 我对ThreadPoolExecitor工作方式的了解是否正确: 如果NumberOfThreadRunning 根据第3点。我应该能够使用ThreadPoolExecutor执行20个任务。 为什么上述代码的输出是?

  • 此指令可与锁前缀一起使用,以允许指令原子执行。为了简化与处理器总线的接口,目的操作数接收一个写周期,而不考虑比较的结果。如果比较失败,则写回目标操作数;否则,将源操作数写入目标。 我很难理解最后一句(但可能也很难理解整个图表) 写回什么? 源操作数是什么?是吗?据我所知,这个CAS指令只接受一个操作数(内存目标)。 如果有人能重新措辞和/或解释关于无条件写入的这一点,我将不胜感激。

  • 本文向大家介绍深入了解Java GC的工作原理,包括了深入了解Java GC的工作原理的使用技巧和注意事项,需要的朋友参考一下 JVM学习笔记之JVM内存管理和JVM垃圾回收的概念,JVM内存结构由堆、栈、本地方法栈、方法区等部分组成,另外JVM分别对新生代下载地址  和旧生代采用不同的垃圾回收机制。 首先来看一下JVM内存结构,它是由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示。 JVM

  • 正如标题所解释的,我有一个非常基本的编程问题,但我还没有找到。过滤掉所有(非常聪明的)“为了理解递归,你必须首先理解递归。”各种在线线程的回复我仍然不太明白。 当我们面对不知道自己不知道的事情时,我们可能会提出错误的问题或错误地提出正确的问题。我将分享我的“想法”。我的问题是希望有类似观点的人能够分享一些知识,帮助我打开递归灯泡! 以下是函数(语法用Swift编写): 我们将使用2和5作为参数:

  • 当模拟对象中具有相同参数列表的方法返回值时,如果存在冲突语句,我观察到将返回最近的When/thenReturn。因此,下面的陈述将是正确的。 当有冲突语句抛出异常时,行为与上面不一样。例如, 这个测试用例失败了。任何解释都会有帮助。

  • 我不明白嵌套for循环是如何工作的。正在执行升序程序,请逐步解释它的工作原理 输出: 之后: