#publishing #manifest-file #script #ci #toml #token #manifest-path

app uni_publisher

简化了crates发布

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

MIT/Apache

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