我在我的回购中使用语义发布进行版本控制。在我的Gitlab中,当我将我的分支与development合并时,我的标记会根据提交而增加,并且工作得很好。
我现在想获得当前版本,将其传递到CI的另一个阶段。
我紧随其后
this
我有这个
.releaserc.yml
文件:
plugins:
- "@semantic-release/commit-analyzer"
- "@semantic-release/release-notes-generator"
- "@semantic-release/exec":
- publishCmd: "echo \"VERSION=${nextRelease.version}\" >> version.env"
- "@semantic-release/gitlab"
tagFormat:
- ${version}
branches:
- "develop"
这就是我想用来获取当前版本并将其保存为工件的gitlab CI阶段
fetch-semantic-version:
image: node:20
stage: fetch-version
variables:
GITLAB_TOKEN: $ACCESS_TOKEN
only:
refs:
- develop
script:
- npm install @semantic-release/gitlab @semantic-release/exec
- npx semantic-release --dry-run --no-ci --branches develop > VERSION.txt
- cat VERSION.txt
artifacts:
paths:
- VERSION.txt
reports:
dotenv: version.env # this will save the version.env file and apply all variables in the next stage
当我推送提交时(使用
conventional commits
)我明白了:
[7:10:42 AM][semantic release]在分支开发中发现与1.1.2版本相关的git标记1.1.2
[7:10:42 AM][semantic release]自上次发布以来已发现29次提交
[7:10:42 AM][semantic release]插件“@语义发布/提交分析器”完成步骤“analyzeCommits”
[7:10:42 AM][语义发布]没有相关变化,因此没有发布新版本。
我这个案子,没有新的版本,我想得到
1.1.2
,在新版本的情况下,日志将为:
[2:43:30PM][semantic release]完成步骤“analyzeCommits”
插件“@语义发布/提交分析器”的[2:43:30PM]
【语义发布】下一个发布版本是1.1.2【下午2:43:30】
【语义发布】启动插件的generateNotes步骤
“@语义发布/发布说明生成器”[2:43:30PM]
【语义发布】插件“generateNotes”步骤完成
“@语义发布/发布说明生成器”[2:43:33PM]
【语义发布】创建标签1.1.2
如何以这样一种方式修复它,我可以获得以前的版本,找到下一个版本,以确保我将正确的版本传递到下一阶段?