语义发布的发布标签指向错误的频道

问题描述

我正在为我们的.Net Core解决方案使用语义发布。 语义发布被用作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分支和一个具有最新开发代码的develop分支。也有从develop创建的功能分支,但未进行版本控制。

我遇到的问题是,一旦我将代码从develop合并到release,对develop分支的任何提交都会导致语义释放无法找到最后一个标签在合并到release之前创建。

让我尝试解释发生了什么。 使用提交消息develop的功能分支(从develop创建)使用壁球合并到feat(Products): Add tag support,此提交将产生新版本v1.10.0-beta.11。 接下来,我将把develop分支合并到release,这将导致创建1.10.0-RC.1版本。 接下来,我将对develop分支进行新的提交,这将导致语义释放无法创建新版本。

[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
...

以后对develop的所有提交都会失败。唯一的解决方案是将release合并到master分支。 如果我再次将develop合并到release。这将发生:

[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频道上发布beta版本。

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

注意: 最初,我想使用普通的GitFlow分支模型,但由于遇到语义释放方面的更多问题,因此我对其进行了简化。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...