324 个稳定版本
2.4.0-beta.1 | 2024 年 5 月 31 日 |
---|---|
2.3.57 | 2024 年 8 月 24 日 |
2.3.43 | 2024 年 7 月 26 日 |
2.2.96 | 2024 年 3 月 30 日 |
1.0.2 | 2022 年 12 月 12 日 |
#61 在 构建工具
2,010 每月下载量
91KB
1.5K SLoC
semantic-release-cargo
semantic-release-cargo 将基于 cargo 的 Rust 项目与 semantic-release 集成。这解决了两个用例
- 发布到 crates.io 或其他替代 crate 注册表,以及
- 编译发布版二进制文件
发布到 crates.io
按照以下说明操作后,您将拥有一个语义发布管道,可以将您的 Rust crate 发布到 crates.io。
要求
如果要将软件包发布到 crates.io,您必须设置 CARGO_REGISTRY_TOKEN
环境变量。
如果要将软件包发布到 替代注册表,您必须设置 CARGO_REGISTRIES_<YOUR REGISTRY>_TOKEN
环境变量。
此工作流程支持以下系统
系统 | 支持? |
---|---|
macOS aarch64 | ✓ |
macOS x64 | ✓ |
Linux x64 gnu | ✓ |
安装
使用 npm 安装 semantic-release-cargo
$ npm install --save-dev --save-exact @semantic-release-cargo/semantic-release-cargo
用法
将 semantic-release-cargo 添加到您的 semantic-release
配置文件 .releaserc.json
{
"plugins": ["@semantic-release-cargo/semantic-release-cargo"]
}
使用 semantic-release-action 的替代配置
如果您不希望将 npm 与您的 Rust 项目混合,您可以使用 semantic-release-action。
编译发布版本二进制文件
按照以下说明操作后,您将拥有一个GitHub Actions工作流程,该工作流程将设置在Cargo.toml
中的下一个版本号并编译您的crate发布版本的二进制文件。
使用下一个版本号更新Cargo清单可以让您在编译的二进制文件中引用下一个版本,例如使用clap::crate_version宏。
编译的二进制文件可以使用@semantic-release/github插件上传到GitHub发布。
此工作流程支持以下系统
系统 | 支持? |
---|---|
macOS aarch64 | ✓ |
macOS x64 | ✓ |
Linux aarch64 | ✓ |
Linux x64 | ✓ |
Linux x86 | ✓ |
用法
在第一个作业中,使用next-release-version动作保存下一个发布版本为GitHub Actions输出
jobs:
get-next-version:
uses: semantic-release-action/next-release-version/.github/workflows/next-release-version.yml@v4
在下一个作业中,使用semantic-release-cargo在编译之前设置crate版本
build:
name: Build
runs-on: ubuntu-latest
needs:
- get-next-version
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install semantic-release-cargo
if: needs.get-next-version.outputs.new-release-published == 'true'
uses: EricCrosson/install-github-release-binary@v2
with:
targets: semantic-release-cargo@2
- name: Prepare semantic-release for Rust
if: needs.get-next-version.outputs.new-release-published == 'true'
run: semantic-release-cargo prepare ${{ needs.get-next-version.outputs.new-release-version }}
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@master
- name: Cargo build
run: cargo build --release --target=x86_64-unknown-linux-gnu --all-targets
示例工作流程
您可以为这两个用例创建一个单一的GitHub Actions工作流程。此存储库使用semantic-release-cargo与semantic-release一起发布到crates.io并创建带有预编译二进制文件的GitHub发布。
有关工作示例,请参阅release.yml。
贡献者许可协议
除非您明确声明,否则您提交给semantic-release-cargo的任何贡献,根据Apache-2.0许可证定义,应双许可如上所述,无需任何额外条款或条件。
致谢
此存储库已从kettleby/semantic-release-rust分支。所有荣誉归原作者。
依赖关系
~9–18MB
~255K SLoC