2

为了通过利用 pact broker webhook 自动化合同测试,我使用 jenkins 作业创建了自定义的 contract_content_changed 事件。但是当我尝试为验证结果发布触发的客户管道添加 webhook 时,它失败了几次。

{"consumer": {
    "name": "Consumer Service"
  },
  "provider": {
    "name": "Provider Service"
  },
  "events": [
    {
      "name": "provider_verification_published"
    }
  ],
  "request": {
    "method": "POST",
    "url": "http://jenkinsserver/jobforconsumerdeployment",
    "headers": {
      "Accept": "application/json"
    },
   "body": {"VerificationResultURL","${pactbroker.verificationResultUrl}"
    }
}

删除body元素后,它创建成功。通过将主体传递给客户作业,它可以解析失败/通过并决定是否应该进行部署。

如果不允许使用正文,消费者管道如何获取结果并继续下一步(或停止部署)?

我指的是Pact Broker Webhooks

4

1 回答 1

0
  1. 从构建触发器部分将 Jenkins 作业配置为“远程触发构建”
  2. 通过以下链接生成 Jenkins-Crumb 创建 Jenkins-Crumb 的步骤
  3. 在 Pact-Broker 中的 post 请求对我来说在我的本地 jenkins 设置上工作正常(需要检查 jenkin 权限以启用 web-hook 执行) { "events": [{ "name": "provider_verification_published" }], "request": { "method": "GET", "url": "http://username:password@jenkins_url/job/jenkin_consumer/build?token=abc", "user" : "username:password", "headers": { "Jenkins-Crumb": "c787ce16220300f5ef8287a4474d9acxd" } } }

如果不允许使用正文,消费者管道如何获取结果并继续下一步(或停止部署)?

是的,如果发生“provider_verification_published”事件,则不允许使用正文。所以要确认验证结果,我们需要使用 "can-i-deploy" cli 来部署或停止部署can-i-deploy有关Pact Broker Webhook的更多信息

于 2018-11-14T12:47:07.063 回答