#!/bin/bash -e set -o pipefail asset_urls="$@" git checkout gh-pages cd charts # Download chart(s) from release assets for asset_url in $asset_urls; do if ! echo "$asset_url" | grep -q 'chart.*tgz$'; then echo "Skipping $asset_url, does not look like a Helm chart archive" continue fi echo "Downloading $asset_url..." curl -sSfLO $asset_url # We rely on all release assets having the same baseurl download_baseurl=`dirname $asset_url` done if [ -z "$download_baseurl" ]; then echo "No Helm chart release assets found" exit 0 fi echo "Updating helm index" helm repo index . --merge index.yaml --url $download_baseurl # Check if there were any changes in the repo if [ -z "`git status --short`" ]; then echo "No changes in Helm repo incex, gh-pages branch already up-to-date" exit 0 fi # Create a new commit commit_msg="Update Helm repo index for release `basename $download_baseurl` Auto-generated by `basename $0`" echo "Committing changes..." git commit -m "$commit_msg" -- index.yaml echo "gh-pages branch successfully updated"