在语义版本中处理nextRelease版本

时间:2018-11-21 16:54:07

标签: pact semantic-release

因此,我一直在阅读文档,并对以下内容有所了解 我应该做什么,但是对如何我没有真正的把握。

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

我如何轻松做到这一点?

我看了看文档,了解可以使用exec插件,但是,我不清楚我应该如何配置语义释放使其行为与现在完全相同,只是公开了版本至少是一个env变量,并且找不到执行此操作的示例。

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

似乎我也可以编写自己的JS脚本(请参见https://github.com/semantic-release/semantic-release/blob/3cc62f0318ff8917fcdc7cebe890da9dbaa7b3f9/docs/developer-guide/js-api.md)来执行此操作以及处理版本,但是我不确定此示例的作用以及涉及当前行为的内容。 / p>

我想我也可以编写自己的pact插件,但这比必须了解语义释放的内部原理还要更进一步。

因此,我正在寻求一些示例/经验共享,也许是一种轻松的解决方案,可以使它在30分钟内完成工作:)

谢谢

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

1 个答案:

答案 0 :(得分:3)

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

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

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