4 个版本

0.5.1 2024 年 6 月 27 日
0.5.0 2024 年 2 月 9 日
0.4.1 2024 年 1 月 21 日
0.4.0 2024 年 1 月 21 日

#630开发工具 中排名

Download history 7/week @ 2024-05-03 11/week @ 2024-05-17 5/week @ 2024-05-24 4/week @ 2024-05-31 16/week @ 2024-06-07 8/week @ 2024-06-14 124/week @ 2024-06-21 83/week @ 2024-06-28 34/week @ 2024-07-05 2/week @ 2024-07-12 10/week @ 2024-07-19 66/week @ 2024-07-26 26/week @ 2024-08-02 24/week @ 2024-08-09 31/week @ 2024-08-16

每月 149 次下载

MIT/Apache

56KB
1K SLoC

auto-release

Crates.io

此包提供了一个可执行的程序,可以从 Github Actions 中运行以将代码发布到 crates.io 并推送 git 标签。

所有发布所需的代码更改都由开发者在常规 git 提交中完成。该提交包括在 Cargo.toml 中提升版本,以及 Cargo.lock、更改日志文件等的任何更新。提交将通过正常的拉取请求流程进行审查和合并。一旦合并,Github Actions 作业将运行 auto-release 实际推送发布。

这种方式发布有几个优点,优于本地发布流程

  1. 它可以大大减少出错的机会,例如忘记同步本地分支或忘记推送 git 标签。
  2. Cargo 凭据可以安全地存储在 Github 上,无需本地副本。

用法

创建一个 Github Actions 工作流程,例如 .github/workflows/release.yaml

on:
  push:
    branches:
      - main
      
name: Release

permissions:
  contents: write

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: cargo install auto-release
      - run: auto-release -p <package>
        env:
          CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}

auto-release 包具有最小的编译时依赖项,因此编译速度非常快。它依赖于各种程序可用,所有这些程序都已安装和配置在 Github 的 Ubuntu 运行器上

  • cargo
  • curl
  • gh
  • git
  • jq

Cargo 注册表令牌

在您的 crates.io 账户设置 中生成 cargo 注册表令牌。令牌范围必须包括 publish-update。如果该包以前从未发布过,则需要 publish-new

为了使令牌可用于 Github Actions 工作流程

  1. 转到您的存储库设置
  2. 点击侧边栏中的 秘密和变量,然后点击 操作
  3. 仓库秘密 下,点击 新建仓库秘密

选项

  • -p/--package 可以多次指定以发布多个包。请注意,如果包相互依赖,顺序可能很重要。
  • --condition body 添加一个条件,即提交信息体必须以 "release:" 开头,否则提交将被忽略。
  • --condition subject 添加一个条件,即提交信息主题必须以 "release:" 开头,否则提交将被忽略。

许可证

根据您的选择,在 Apache License, Version 2.0MIT 许可证 下授权。

贡献

请参阅 行为准则贡献.md

免责声明

本项目不是官方的 Google 项目。它不受 Google 支持,Google 明确声明对该项目的质量、商誉或特定用途的适用性不承担任何保证。

依赖项