krew-release-bot

module
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 16, 2022 License: Apache-2.0

README

Netlify Status

krew-release-bot is a bot that automates the update of plugin manifests in krew-index when a new version of your kubectl plugin is released. If a release is marked as a 'prerelease' in github, it will not be released to the krew index.

To trigger krew-release-bot you can use a github-action which sends the event to the bot.

Basic Setup

  • Make sure you have enabled github actions for your repo
  • Add a .krew.yaml template file at the root of your repo. Refer to kubectl-evict-pod repo for an example.
  • To setup the action, add the following snippet after the step that publishes the new release and assets:
    - name: Update new version in krew-index
      uses: k8s-devops-tools/krew-release-bot@v0.0.43
    
    Check out the goreleaser example below for details.
Example when using 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@v1
        with:
          go-version: 1.16
      - 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: k8s-devops-tools/krew-release-bot@v0.0.43

** You can also customize the release assets names, platforms for which build is done using .goreleaser.yml file in root of your git repo.

Examples using krew-release-bot in different ways

Testing the template file

You can test the template file rendering before check-in to the repo by running following command

$ docker run -v /path/to/your/template-file.yaml:/tmp/template-file.yaml k8s-devops-tools/krew-release-bot:v0.0.43 \
  krew-release-bot template --tag <tag-name> --template-file /tmp/template-file.yaml

Inputs for the action

Key Default Value Description
workdir env.GITHUB_WORKSPACE Overrides the GitHub workspace directory path
krew_template_file .krew.yaml The path to template file relative to $workdir. e.g. templates/misc/plugin-name.yaml

Limitations of krew-release-bot

  • only works for repos hosted on github right now
  • The first version of plugin has to be submitted manually, by plugin author, to the krew-index repo

Kubernetes CLA

krew-release-bot is just a service to open PR on your behalf to release a new version of the krew-plugin. Your CLA agreement (that you did when submitting the new plugin to krew-index) is still applicable on these PR's.

Directories

Path Synopsis
cmd
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL