Git 语义释放将标记发布到错误通道

Git 语义释放将标记发布到错误通道,git,gitlab,git-flow,semantic-versioning,semantic-release,Git,Gitlab,Git Flow,Semantic Versioning,Semantic Release,我正在为我们的.Net核心解决方案使用语义发布。 语义发布用作GitLab存储库上CI管道的一部分 这是我的.releaserc.json { "plugins": [ "@semantic-release/commit-analyzer", "@semantic-release/release-notes-generator", ["@semantic-release/changelog"

我正在为我们的.Net核心解决方案使用语义发布。 语义发布用作GitLab存储库上CI管道的一部分

这是我的.releaserc.json

{
  "plugins": [
    "@semantic-release/commit-analyzer",
    "@semantic-release/release-notes-generator",
    ["@semantic-release/changelog", {
      "changelogFile": "CHANGELOG.md"
    }],
    ["@semantic-release/exec", {
      "publishCmd": "./publish.sh ${nextRelease.version}"
    }],
    "@semantic-release/gitlab"
  ],
  "branches": [
      "master",
      {"name": "develop", "channel": "beta", "prerelease": "beta"},
      {"name": "release", "channel": "RC", "prerelease": "RC"}
  ]
}
正如您所看到的,我使用的是简化的GitFlow。 我有一个
master
分支,一个
release
分支,用于发布发布候选版本和
develope
分支,其中包含最新的开发代码。还有从
develope
创建的功能分支,但它们没有版本控制

我遇到的问题是,一旦我将代码从
develope
合并到
release
分支,对
develope
分支的任何提交都将导致语义发布无法找到合并到
release
之前创建的最后一个标记

让我试着解释一下发生了什么。 合并到
develope
,使用挤压,为带有提交消息
feat(产品)
Add tag support
的功能分支(从
develope
创建)创建:此提交将生成新版本
v1.10.0-beta.11
。 接下来,我将把
develope
分支合并到
release
,这将导致创建
1.10.0-RC.1
版本。 接下来,我将执行一个新的commit to
develope
分支,这将导致语义发布无法创建新版本

[11:09:42 AM] [semantic-release] › ✔  Completed step "verifyConditions" of plugin "@semantic-release/gitlab"
[11:09:42 AM] [semantic-release] › ℹ  Found git tag v1.10.0-beta.10 associated with version 1.10.0-beta.10 on branch develop
[11:09:42 AM] [semantic-release] › ℹ  Found 2 commits since last release
[11:09:42 AM] [semantic-release] › ℹ  Start step "analyzeCommits" of plugin "@semantic-release/commit-analyzer"
[11:09:42 AM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  Analyzing commit: feat(Products): One commit before Add tag support
[11:09:42 AM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  The release type for the commit is minor
[11:09:42 AM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  Analyzing commit: feat(Products): Add tag support
[11:09:42 AM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  The release type for the commit is patch
[11:09:42 AM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  Analysis of 2 commits complete: minor release
...
[11:09:42 AM] [semantic-release] › ℹ  Start step "prepare" of plugin "@semantic-release/exec"
[11:09:42 AM] [semantic-release] › ✔  Completed step "prepare" of plugin "@semantic-release/exec"
[11:09:42 AM] [semantic-release] › ✖  An error occurred while running semantic-release: Error: Command failed with exit code 128: git tag v1.10.0-beta.11 a1ee6896485641d039f1816efcc0e30dce7139e8
fatal: tag 'v1.10.0-beta.11' already exists
...
所有未来对
开发的承诺都将失败。唯一的解决方案是将
release
合并到
master
分支。 如果我再次将
开发
合并到
发布
。这将发生:

[9:57:53 AM] [semantic-release] › ✔  Completed step "verifyConditions" of plugin "@semantic-release/gitlab"
[9:57:53 AM] [semantic-release] › ℹ  Found git tag v1.10.0-beta.11 associated with version 1.10.0-beta.11 on branch release
[9:57:53 AM] [semantic-release] › ℹ  Found 1 commits since last release
[9:57:53 AM] [semantic-release] › ℹ  Start step "analyzeCommits" of plugin "@semantic-release/commit-analyzer"
[9:57:53 AM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  Analyzing commit: fix(bug): Some bug fixed
[9:57:53 AM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  The release type for the commit is patch
[9:57:53 AM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  Analysis of 1 commits complete: patch release
[9:57:53 AM] [semantic-release] › ✔  Completed step "analyzeCommits" of plugin "@semantic-release/commit-analyzer"
...
[9:59:02 AM] [semantic-release] › ℹ  Start step "publish" of plugin "@semantic-release/gitlab"
[9:59:02 AM] [semantic-release] [@semantic-release/gitlab] › ℹ  Published GitLab release: v1.10.0-beta.12
[9:59:02 AM] [semantic-release] › ✔  Completed step "publish" of plugin "@semantic-release/gitlab"
[9:59:02 AM] [semantic-release] › ℹ  Start step "success" of plugin "@semantic-release/exec"
[9:59:02 AM] [semantic-release] › ✔  Completed step "success" of plugin "@semantic-release/exec"
[9:59:02 AM] [semantic-release] › ✔  Published release 1.10.0-beta.12 on RC channel
它将在RC频道发布测试版

在我看来,这似乎是一个配置问题,或者可能是分支模型问题。 任何帮助都将不胜感激

注:
最初我想使用vanilla GitFlow分支模型,但在语义发布方面遇到了更多的问题,所以我将其简化了一点。

我面临着完全相同的问题。你找到解决办法了吗?看起来这可能与: