因此,我一直在阅读文档,并对以下内容有所了解 我应该做什么,但是对如何我没有真正的把握。
这是我的问题: -我正在使用语义发布将程序包发布到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:很抱歉在这里发布,但是似乎语义释放的问题并不是真正的支持问题。
答案 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
才会以发行版本作为每个新发行版本的第一个参数被调用。