A: semrel-gitlab 是一个基于语义化版本的 GitLab 发布工具,它可以自动分析提交记录,根据提交信息自动确定版本号,并在 GitLab 上创建相应的标签和发布说明。
A: 使用 semrel-gitlab 可以:
- 自动化版本管理流程
- 确保版本号的一致性
- 自动生成变更日志
- 简化发布流程
- 提高开发效率
A: 有两种安装方式:
- 使用 Go 安装:
go install github.com/fanny7d/semrel-gitlab@latest - 使用 Docker:
docker pull fanny7d/semrel-gitlab:latest
A: 请确保:
- Go 版本 >= 1.22
- GOPATH 已正确设置
- 使用了正确的包名
A: 有两种方式:
- 环境变量:
export GITLAB_TOKEN=your-token - 命令行参数:
--token your-token
A: 有三种方式:
- 环境变量:
export GITLAB_SKIP_SSL_VERIFY=true - 命令行参数:
--skip-ssl-verify - 配置文件:
gitlab: skip_ssl_verify: true
A: 使用 next-version 命令:
semrel-gitlab next-versionA: 使用 changelog 命令:
semrel-gitlab changelogA: 使用 tag 命令:
semrel-gitlab tagA: 使用 commit-and-tag 命令:
semrel-gitlab commit-and-tag file1 file2A: 使用 add-download 命令:
semrel-gitlab add-download --file path/to/fileA: 当提交包含破坏性变更时(在提交消息中包含 BREAKING CHANGE:)。
A: 当提交类型为 feat 时。
A: 当提交类型为 fix、refactor、perf、docs、style 或 test 时。
A: 使用 --pre-tmpl 参数或在配置文件中设置 version.pre_templates:
version:
pre_templates:
- alpha.{{.Num}}
- beta.{{.Num}}
- rc.{{.Num}}A: 在 .gitlab-ci.yml 中添加:
release:
stage: release
script:
- semrel-gitlab release
only:
- mainA: 在提交消息中添加 [skip ci],可以通过配置文件设置:
ci:
bump_commit_template: "chore: 版本更新为 {{.Version}} [skip ci]"A: 需要设置 GitLab 访问令牌,可以:
- 设置环境变量:
export GITLAB_TOKEN=your-token - 使用命令行参数:
--token your-token
A: 这意味着没有找到会触发版本更新的提交。可以:
- 确保提交消息遵循 Conventional Commits 规范
- 使用
--bump-patch强制增加补丁版本 - 使用
--allow-current允许使用当前版本
A: 如果使用自签名证书,可以:
- 设置环境变量:
export GITLAB_SKIP_SSL_VERIFY=true - 使用命令行参数:
--skip-ssl-verify
A: 使用 version 命令:
semrel-gitlab versionA: 使用 completion 命令生成补全脚本:
# Bash
source <(semrel-gitlab completion bash)
# Zsh
source <(semrel-gitlab completion zsh)
# Fish
semrel-gitlab completion fish | source
# PowerShell
semrel-gitlab completion powershell | Out-String | Invoke-ExpressionA: 可以: