rajatjindal/krew-release-bot · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
krew-release-bot 是一个机器人,当您的 kubectl 插件发布新版本时,它会自动更新 krew-index 中的插件清单。
如果某个发布版本在 github 上被标记为 'prerelease',则不会发布到 krew 索引中。
要触发 krew-release-bot,你可以使用一个 github-action 将事件发送给机器人。
基本设置
- 确保你已为你的仓库启用 github actions
- 在仓库根目录添加一个
.krew.yaml模板文件。请参考 kubectl-evict-pod 仓库以获取示例。- 你可以使用 https://rajatjindal.com/tools/krew-release-bot-helper/ 来为你的插件生成模板
- 要设置该 action,请在发布新 release 和 assets 的步骤之后添加以下代码片段:
请查看下面的- name: Update new version in krew-index uses: rajatjindal/krew-release-bot@v0.0.50goreleaser示例以了解详细信息。
使用 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
操作的输入
| Key | Default Value | Description |
|---|---|---|
| workdir | env.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。
