#cargo #github-actions #crates-io #search #cache #version #action

bin+lib cargo-search2

cargo search 的优化版本,适用于 GitHub Actions 和其他 CI 缓存

5 个不稳定版本

0.2.2 2021 年 10 月 11 日
0.2.1 2021 年 10 月 10 日
0.1.1 2021 年 10 月 4 日
0.0.5 2021 年 10 月 4 日

Cargo 插件 中排名第 574

MIT/Apache

20KB
170

cargo-search2

cargo-search2 on crates.io Documentation (latest release) Documentation (main) License License

一个二进制实用工具,提供了更方便的 cargo search 版本。

安装

发布页面 下载您平台上的预构建二进制文件。

在 CI 或其他自动化中获取发布版本

curl -LsSf https://github.com/sunshowers/cargo-search2/releases/latest/download/cargo-search2-{platform}.zip | tar xzf - -C ~/.cargo/bin

手动安装

cargo install cargo-search2

示例

$ cargo search2 serde
# output:
serde 1.0.130 (hash: blake2b24:2e6117acae4f6f2d2d698c9fc0b43de60ac26556f44ad96b)

$ cargo search2 serde --message-format toml
serde = "1.0.130"

$ cargo search2 serde --message-format json
{"crate-name":"serde","version":"1.0.130","hash":"blake2b24:2e6117acae4f6f2d2d698c9fc0b43de60ac26556f44ad96b"}

# Get an exact version or semver range
$ cargo search2 serde --req '=1.0.120'
serde 1.0.120 (hash: blake2b24:f79131f50c298569f841e47287c3b0a443c29cfda3ffd475)

# Use --cache-version/-c to invalidate caches
$ cargo run -- serde --req '=1.0.120' -c1
serde 1.0.120 (hash: blake2b24:168778241e3b0e96f5547fba1eb4b4b84efa8291c3c14b37)
$ cargo run -- serde --req '=1.0.120' -c2
serde 1.0.120 (hash: blake2b24:344d8a8d08a16dbce8c4e0d90fd6aad513631ca081185ea8)

# Step outputs for GitHub Actions
$ cargo search2 serde --message-format github
::set-output name=crate-name::serde
::set-output name=version::1.0.120
::set-output name=hash::blake2b24:f79131f50c298569f841e47287c3b0a443c29cfda3ffd475

有关 GitHub Action 的示例,请参阅 .github/workflows/example.yml

为什么?

人们有时使用 cargo search 生成工具的缓存键。这是一个通过更多功能实现相同目标的更简单方法。

cargo search2 支持

  • 查找精确版本和 semver 范围
  • 以纯文本、JSON 和 GitHub Actions 格式生成结果
  • 通过 --cache-version 选项轻松使缓存失效

哈希内容

cargo search2 产生的哈希值是从以下内容派生的

  • 软件包的名称
  • 确切的版本号
  • 缓存版本

值得注意的是,操作系统和其他环境部分 不是 哈希的一部分。

稳定性保证

在 semver 范围内,命令行界面是追加的,并且哈希值保持不变。

贡献

欢迎拉取请求!请遵循 行为准则

许可证

本项目可根据以下任一许可协议使用:Apache 2.0 许可协议MIT 许可协议

依赖项

~14–24MB
~411K SLoC