ITADN
rajatjindal/krew-release-bot
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Netlify Status

krew-release-bot 是一个机器人,当您的 kubectl 插件发布新版本时,它会自动更新 krew-index 中的插件清单。 如果某个发布版本在 github 上被标记为 'prerelease',则不会发布到 krew 索引中。

要触发 krew-release-bot,你可以使用一个 github-action 将事件发送给机器人。

基本设置

  • 确保你已为你的仓库启用 github actions
  • 在仓库根目录添加一个 .krew.yaml 模板文件。请参考 kubectl-evict-pod 仓库以获取示例。
  • 要设置该 action,请在发布新 release 和 assets 的步骤之后添加以下代码片段:
    - name: Update new version in krew-index
      uses: rajatjindal/krew-release-bot@v0.0.50
    请查看下面的 goreleaser 示例以了解详细信息。
使用 go-releaser 时的示例

<your-git-root>/.github/workflows/release.yml

name: release
on:
  push:
    tags:
      - "v*.*.*"
jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@master
      - name: Setup Go
        uses: actions/setup-go@v4
        with:
          go-version: '1.20'
      - name: GoReleaser
        uses: goreleaser/goreleaser-action@v1
        with:
          version: latest
          args: release --rm-dist
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - name: Update new version in krew-index
        uses: rajatjindal/krew-release-bot@v0.0.50

** 您还可以使用 git 仓库根目录下的 .goreleaser.yml 文件来自定义发布资产名称以及执行构建的平台。

以不同方式使用 krew-release-bot 的示例

测试模板文件

您可以在将模板文件提交到仓库之前,通过运行以下命令来测试模板文件的渲染

$ docker run -v /path/to/your/template-file.yaml:/tmp/template-file.yaml ghcr.io/rajatjindal/krew-release-bot:v0.0.50 \
  krew-release-bot template --tag <tag-name> --template-file /tmp/template-file.yaml

操作的输入

KeyDefault ValueDescription
workdirenv.GITHUB_WORKSPACE覆盖 GitHub 工作区目录路径
krew_template_file.krew.yaml相对于 $workdir 的模板文件路径。例如:templates/misc/plugin-name.yaml

krew-release-bot 的限制

  • 目前仅适用于托管在 github 上的仓库
  • 插件的第一个版本必须由插件作者手动提交到 krew-index 仓库

Kubernetes CLA

krew-release-bot 只是一个代表您打开 PR 以发布 krew-plugin 新版本的工具。您在向 krew-index 提交新插件时签署的 CLA 协议仍然适用于这些 PR。