3 个不稳定版本
0.2.1 | 2023年4月5日 |
---|---|
0.2.0 | 2023年4月5日 |
0.1.0 | 2023年4月5日 |
#437 在 Cargo 插件
每月48次下载
19KB
406 行
cargo publish-workspace
该工具扩展了 Cargo,允许您发布工作区,一个 rust 单一代码库。
安装
请确保您已安装了较新的 rust/cargo 版本。在 Ubuntu 上,您还需要安装 libssl-dev
和 pkg-config
软件包。
$ cargo install cargo-publish-workspace-v2
用法
$ cargo publish-workspace --help
Usage: cargo publish-workspace [OPTIONS] --crate-prefix <CRATE_PREFIX> [-- <cargo-publish-args>...]
Arguments:
[cargo-publish-args]... Additional arguments to pass to 'cargo publish'
Options:
-p, --crate-prefix <CRATE_PREFIX> The prefix of the crates to publish, e.g. 'my-repo-crate-'
--dry-run Run without publishing, same as --show-order
--show-order Only display the order of crates to be published
--target-version <TARGET_VERSION> Specify the version to use instead of CI_TAG environment variable
--aligned-versions-only Verify that every Cargo.toml version are aligned with the version to publish
--token <TOKEN> Specify the token to use instead of CARGO_REGISTRY_TOKEN environment variable
--exclude <EXCLUDE> Crates to exclude and not modify (arg can be supplied multiple times)
--verify-upload-retries <VERIFY_UPLOAD_RETRIES> The number of retries to attempt when verifying the upload of a crate [default: 30]
-h, --help Print help
-V, --version Print version
示例
发布
$ cd my-mono-repo
$ cargo publish-workspace --target-version 1.0.0 --token CARGO_REGISTRY_TOKEN --crate-prefix PREFIX
干运行并显示要发布的 crate 顺序
$ cd my-mono-repo
$ cargo publish-workspace --crate-prefix mat-clockwork --show-order
Finished show dependencies order
0. mat-clockwork-utils
1. mat-clockwork-cron
2. mat-clockwork-thread-program-v1
3. mat-clockwork-network-program
排除一个 crate 进行发布
cargo publish-workspace --target-version 1.0.0 --token CARGO_REGISTRY_TOKEN --crate-prefix PREFIX --exclude crate-1 --exclude crate-2
您还可以在 crate 的 Cargo.toml 中设置
publish = false
从 GitHub Action 中发布
此工具已设计为与 CI 工具(如 GitHub Action)一起使用。请确保设置 GitHub secrets 变量 CARGO_REGISTRY_TOKEN
并使用适当的值。
- 版本将从 $CI_TAG 环境变量中推断
- 令牌将从 $CARGO_REGISTRY_TOKEN 环境变量中推断
cargo publish-workspace --crate-prefix PREFIX
许可
Apache-2.0/MIT
依赖关系
~4–14MB
~177K SLoC