10个版本
0.0.10 | 2020年12月14日 |
---|---|
0.0.9 | 2020年10月17日 |
0.0.6 | 2020年9月8日 |
0.0.4 | 2020年7月22日 |
4 在 #manifest-path
每月下载 27 次
18KB
271 行
简化从CI脚本中发布crates的实用工具
工作原理
$ uni_publisher --token <CRATESIO_ACCESS_TOKEN> --manifest-path <path/to/Cargo.toml> --working-dir=</tmp/dir/>
- (必需) <path/to/Cargo.toml> - crate的清单文件(目前尚不支持工作空间。)
- (必需) </tmp/dir/> - 工作文件的临时目录
- (可选) CRATESIO_ACCESS_TOKEN - 访问crates.io的token(如果未提供token,则实用工具将检查一切,但跳过上传)文档
为什么不使用标签?
使用标签来触发crates发布是常见解决方案。但这对我来说不太好,因为现在关于crate版本的现在信息重复:你在清单中有一个是版本,另一个在标签中。
例如,如果你下载了主分支并检查版本,那么你无法确定该版本是否已发布。你也无法确定存储库中的API是否最终会发布到crates.io。
特殊分支可能用于反映crate版本。这种方法不适合具有多个crate的存储库。
另一种解决方案是在每次提交时为存储库中的每个crate运行uni_uploader。对于开发分支(没有--token参数),它将只检查crate的版本是否反映了crate的更改(如果crate内容已更改,则增加)。对于主分支(带有--token参数),如果crate版本已更改,uni_uploader将自动将crate上传到crates.io。
依赖项
~37–51MB
~1M SLoC