semantic-release触发的Git发布缺失变更描述问题求助
semantic-release自动生成的Git发布缺失发布说明与变更描述
我在应用中部署了semantic-release及相关版本控制插件,用来简化版本管理、标签创建与发布流程。但自动生成的Git发布始终缺失发布说明与变更描述,尽管我多次调整releaserc.yml配置问题仍未解决,自动发布说明对我们的自动化流程至关重要,希望能排查解决。
我的releaserc.yml配置如下:
branches: - '+([0-9])?(.{+([0-9]),x}).x' - main - master - name: alpha prerelease: true plugins: - "@semantic-release/commit-analyzer" - "@semantic-release/release-notes-generator" - - "@semantic-release/exec" - prepareCmd: | mvn --batch-mode --no-transfer-progress versions:set -DgenerateBackupPoms=false -DnewVersion=${nextRelease.version} -s settings.xml\ && npm version ${nextRelease.version} --allow-same-version --force --workspaces\ publishCmd: | mvn --batch-mode --no-transfer-progress -U clean deploy -s settings.xml \ && mvn --batch-mode --no-transfer-progress release:update-versions -s settings.xml \ && git ls-files --modified pom.xml **/pom.xml | xargs git add \ && git commit -m "[skip ci] prepare for next development iteration" \ && git push verifyReleaseCmd: | echo ${nextRelease.version} > .VERSION - - "@semantic-release/git" - assets: - "pom.xml" - "**/pom.xml" - "package.json" - "package-lock.json" - "js/package.json" - "js-internal/package.json" - "@semantic-release/github" analyzeCommits: - path: "@semantic-release/commit-analyzer" releaseRules: - type: "breaking" release: "major" - type: "feat" release: "minor" - type: "update" release: "minor" - type: "fix" release: "patch" - type: "docs" release: "patch" - type: "style" release: "patch" - type: "refactor" release: "patch" - type: "perf" release: "patch" - type: "test" release: "patch" - type: "chore" release: "patch" - type: "revert" release: "patch"
问题根源与修复步骤
自定义commit类型未被release-notes-generator识别
你配置中定义了update这个自定义commit类型,并通过commit-analyzer的规则触发minor版本升级,但@semantic-release/release-notes-generator默认的约定式提交预设不识别该类型,导致对应commit无法被纳入发布说明。需要给该插件添加自定义类型映射,将所有用到的commit类型对应到发布说明的章节中:plugins: - "@semantic-release/commit-analyzer" - - "@semantic-release/release-notes-generator" - preset: conventionalcommits presetConfig: types: - type: feat section: "Features" - type: update section: "Updates" hidden: false - type: fix section: "Bug Fixes" - type: docs section: "Documentation" - type: style section: "Styles" - type: refactor section: "Code Refactoring" - type: perf section: "Performance Improvements" - type: test section: "Tests" - type: chore section: "Chores" - type: revert section: "Reverts" - type: breaking section: "Breaking Changes"确认commit格式符合规范
所有commit message必须遵循<type>: <description>的格式(比如update: 升级依赖版本),否则commit-analyzer无法正确分类commit,release-notes-generator也无法生成对应变更描述。简化analyzeCommits配置(可选)
你当前的analyzeCommits配置可以内嵌到@semantic-release/commit-analyzer的插件配置中,让结构更清晰:plugins: - - "@semantic-release/commit-analyzer" - releaseRules: - type: "breaking" release: "major" - type: "feat" release: "minor" - type: "update" release: "minor" - type: "fix" release: "patch" - type: "docs" release: "patch" - type: "style" release: "patch" - type: "refactor" release: "patch" - type: "perf" release: "patch" - type: "test" release: "patch" - type: "chore" release: "patch" - type: "revert" release: "patch"测试配置有效性
使用dry-run模式验证配置是否能生成正确的发布说明:npx semantic-release --dry-run
内容的提问来源于stack exchange,提问作者Sakshi Dagar
相关产品推荐
相关产品推荐

