daltcore / release-tools
项目发布工具
Requires
- m4tthumphrey/php-gitlab-api: ^8.0
- php-http/guzzle6-adapter: ^1.1
- symfony/console: ^3.3
- symfony/event-dispatcher: ^3.3
- symfony/filesystem: ^3.3
- symfony/finder: ^3.3
- symfony/process: ^3.3
- symfony/var-dumper: ^3.3
- symfony/yaml: ^3.3
- thibaud-dauce/mattermost-php: ^1.0
README
安装
通过composer
composer global require daltcore/release-tools
或
通过可执行文件:访问发布版并将此可执行文件添加到您的$PATH环境变量中。
在当前运行库上初始化ReleaseTools。创建.release-tools目录和.release-tool文件。
release-tool init
检查ReleaseTools是否就绪
release-tool status
如果您想了解更多关于ReleaseTools结构的信息
则可以在每个命令后面使用-v
标志来查看
详细信息
如果发生错误,则可以向工具添加-vvv
参数。将显示堆栈跟踪。
用法
开发
在开发中,您应该为所有功能/更改创建新的分支。
发布工具使用当前分支名称为changelog文件命名。
向仓库添加新的changelog文件,此命令是交互式的。
对于测试,您可以使用--dry-run
作为参数
release-tool changelog
实现git钩子以强制您制作changelog条目
release-tool hooks:made-changelog
发布
在开发中,您想运行prepare命令,该命令将在.release-tools文件中指定的仓库中创建一个issue
对于测试,您可以使用--dry-run
作为参数
release-tool release:prepare
构建changelog文件
对于测试,您可以使用--dry-run
作为参数
release-tool build:changelog
列出所有挂起的changelog
release-tool list:changelog
+-------------------+------------+---------------+--------------+
| Title | Author | Merge Request | Type |
+-------------------+------------+---------------+--------------+
| this is a test MR | Ramon Smit | 1 | Security fix |
+-------------------+------------+---------------+--------------+
构建占位符
如果您需要为release-tool prepare
创建自定义占位符,您可以在
目录.release-tools/stubs
中创建一个名为prepare.stub
的文件
这些文件是markdown文件,以下变量可用
- :version 这表示您被要求填写的版本
- :reop 这表示从.release-tool文件中的.repo变量
这将在发布时覆盖推送到GitLab的issue模板。
示例
**Release `:repo` version `:version`** *Pre flight checks* * [ ] - Notify in `5_Releases` * [ ] - A * [ ] - B * [ ] - C
构建playbook
如果您需要为release-tool playbook <playbook-name>
创建自定义playbook,您可以在
目录.release-tools/playbooks
中创建一个名为<name>.rtp
的文件
这些文件是yaml文件,以下变量可用
- :version 这表示您被要求填写的版本
- :reop 这表示从.release-tool文件中的.repo变量
示例
playbook: gitlab: make_branch: from: develop to: releases/:version tag: from: releases/:version version: v:version merge_request: branches: releases/:version > master merge_request: branches: master > develop mattermost: notify: channel: 'releases' message: '@channel We''re about to release version :version of the project :repo. Please stop merging now into develop until next announcement'
示例包含playbook的所有可用方法。
.release-tools文件示例
repo: group/repo api_url: https://gitlab.com api_key: AbC123DeF456Ghi789 mattermost_webhook: https://mattermost.server.com/hooks/hook-uri