Release instruction

This document describes how to prepare and publish a new Botkube release.



The botkube repository

  1. Clone and navigate to the root of the botkube repository.

  2. Export required environment variables:

    export GITHUB_USERNAME="{username}" # GitHub username
    export GITHUB_TOKEN="{token}" # GitHub personal access token with packages write scope
  3. Log in to Docker:

    echo $GITHUB_TOKEN | docker login -u ${GITHUB_USERNAME} --password-stdin
  4. Update .release file with the new version in Semantic Versioning 2.0 format.

    release=v{semVer version}

    For example:

  5. Run release script:


    This script:

    • Updates version in Helm chart,
    • Generates changelog based on pull requests and issues,
    • Runs tests,
    • Creates and pushes git tag,
    • Publishes Docker images,
    • Publishes GitHub release.
  6. Update newly created GitHub release description using GitHub UI.

    • Copy the generated changelog for the released version from the ./ file.
    • Edit the GitHub release and paste the changelog into the description field.
  7. Publish the modified Helm charts:

    git clone -b gh-pages "" /tmp/botkube-charts
    helm package -d /tmp/botkube-charts ./helm/botkube
    cd /tmp/botkube-charts
    helm repo index --url "" --merge ./index.yaml .
    git add .
    git commit -m "Release BotKube Helm chart"
    git push
    cd -
    rm -rf /tmp/botkube-charts

The botkube-docs repository

  1. Clone and navigate to the root of the botkube repository.

  2. Run the release script:


    You can customize the source repository by setting GITHUB_ORG, GITHUB_REPO and REPO_BRANCH environment variables.

    This script:

    • Updates Docker image versions in the documentation,
    • Updates changelog,
    • Updates Helm chart options,
    • Creates and pushes git tag.