【发布时间】:2020-02-19 13:37:26
【问题描述】:
我目前正在尝试使用 Pact,但偶然发现了工作流程的问题,但找不到令人满意的解决方案。所以希望有人可以帮助我。 :-)
首先,这是我目前在消费者方面进行更改的工作流程:
- 消费者更改上传到 Github 的功能分支中
- Pact 测试在 CI 系统上运行,生成的 pact 使用标签 [feature-branch-name] 和 verify_feature 上传到 pact broker(目前我只使用后一种)
- 消费者等待验证(使用 can-i-deploy 工具)
- pact 代理通过 webhook 触发提供者(触发器:contract_content_changed)
- 供应商对标记为 verify_feature 的最新版本运行 pact-verify 并上传结果
- 消费者检查结果,如果验证成功则可以合并分支
到目前为止一切顺利。当消费者引入破坏性更改时,问题就出现了:
消费者将更改上传到 Github 后,执行上述过程,提供者验证失败,进而导致消费者构建失败。
现在在提供商方面进行了必要的更改。提供者针对测试阶段的消费者版本运行 pact-verify,如果成功,则合并和部署新版本。
现在新的消费者版本也应该可以合并了。唉,它不起作用,因为这个版本没有再次验证。当我重新启动 CI 作业时,协议会重新上传到协议代理,但由于协议内容没有更改,因此不会触发 webhook。消费者版本从未经过验证。
那么,我做错了什么?
【问题讨论】:
标签: pact