3

所以我一直在阅读文档,并且对我应该做的 事情有所了解,但没有真正掌握我该怎么做。

这是我的问题: - 我正在使用语义发布将我的包发布到 npm - 我还使用 Pact 进行了合同测试。- 我希望我的契约在发布后发布,如果成功的话,与新版本的版本相同

我怎样才能轻松做到这一点?

我查看了文档,并了解我可以使用该exec插件,但是,我发现我不清楚我应该如何配置语义发布以与现在完全相同,至少将版本公开为env 变量,并且找不到这样做的人的示例。

我可以使用钩子,但我担心如果由于某些原因没有发生 npm publish,我仍然会在下一个版本中发布我的协议,而下一个版本并不完全存在。这里有什么建议吗?

看来我也可以编写自己的 JS 脚本(请参阅https://github.com/semantic-release/semantic-release/blob/3cc62f0318ff8917fcdc7cebe890da9dbaa7b3f9/docs/developer-guide/js-api.md)以及处理版本,但我不确定这个示例做了什么以及它涵盖了当前行为的内容。

我想我也可以编写我自己的协议插件,但这比理解语义释放的内部如何工作更重要。

所以我在分享一些例子/经验,也许是一个简单的解决方案,可以在不到 30 分钟的时间内完成 :)

谢谢

PS:很抱歉在这里发帖,但语义释放的问题似乎并不是真正的支持问题。

4

1 回答 1

5

您可以简单地在and@semantic-release/exec之后的额外发布步骤中使用:@semantic-release/npm@semantic-release/github

{
  "plugins": [
    "@semantic-release/commit-analyzer",
    "@semantic-release/release-notes-generator",
    "@semantic-release/npm",
    "@semantic-release/github",
    ["@semantic-release/exec", {
      "publishCmd": "publish-pacts ${nextRelease.version}"
    }],
  ]
}

这样publish-pacts,只有在 npm 和 github 发布成功时,才会使用发布版本作为每个新版本的第一个参数调用脚本。

于 2018-11-24T19:33:16.340 回答