Mou*_*ste 4 pact semantic-release
所以我一直在阅读文档,并且大致了解了 我应该做什么,但没有真正掌握如何做到这一点。
这是我的问题: - 我正在使用语义发布将我的包发布到 npm - 我还使用 Pact 进行了合同测试。- 我希望我的契约在发布后发布,如果成功的话,版本与新版本相同
我怎样才能轻松做到这一点?
我查看了文档,并了解我可以使用该exec插件,但是,我发现不清楚如何配置语义发布以使其行为与现在完全相同,仅将版本公开为至少env 变量,并且找不到人们这样做的例子。
我可以使用钩子,但我担心如果 npm 由于某些原因没有发布,我仍然会在下一个版本中发布我的协议,而下一个版本并不完全存在。这里有什么建议吗?
看来我也可以编写自己的JS脚本(参见https://github.com/semantic-release/semantic-release/blob/3cc62f0318ff8917fcdc7cebe890da9dbaa7b3f9/docs/developer-guide/js-api.md)来执行此操作处理版本,但我不确定这个示例的作用以及它涵盖的当前行为的内容。
我想我也可以编写自己的契约插件,但这甚至是必须了解语义发布的内部结构如何工作的下一个层次。
所以我需要一些示例/经验分享,也许有一个简单的解决方案可以在 30 分钟内完成:)
谢谢
PS:很抱歉在这里发帖,但似乎语义发布的问题并不是真正针对支持问题的。
小智 7
您可以简单地在和@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}"
}],
]
}
Run Code Online (Sandbox Code Playgroud)
这样,publish-pacts只有当 npm 和 github 发布成功时,才会使用发布版本作为每个新版本的第一个参数来调用脚本。