Add an action to find new versions of helm charts (#184)

Co-authored-by: Marco Franssen <[email protected]>
This commit is contained in:
kfox1111
2023-04-25 10:04:38 +02:00
committed by GitHub
co-authored by Marco Franssen
parent 2c360a50fd
commit 17d62f1246
8 changed files with 101 additions and 3 deletions
+49
View File
@@ -0,0 +1,49 @@
name: Check versions
on:
schedule:
- cron: '0 8 * * 1'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
env:
HELM_VERSION: v3.11.1
jobs:
check-helm-chart-versions:
runs-on: ubuntu-22.04
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout
uses: actions/[email protected]
- name: Set up Helm
uses: azure/[email protected]
with:
version: ${{ env.HELM_VERSION }}
- name: Update test chart versions
run: |
./.github/workflows/scripts/update-versions.sh
git diff
- name: Create Pull Request
id: cpr
uses: peter-evans/[email protected]
with:
title: Bump test chart dependencies
branch: bump-test-chart-deps
commit-message: Bump test chart dependencies
body: Bump the Helm charts used in test scenarios to latest available versions.
signoff: true
add-paths: |
.github/tests
- name: Check outputs
if: ${{ steps.cpr.outputs.pull-request-number }}
run: 'echo "::notice title=PR #${{ steps.cpr.outputs.pull-request-number }}::${{ steps.cpr.outputs.pull-request-url }}"'
+2
View File
@@ -199,6 +199,8 @@ jobs:
export scenario="$(basename "${TEST_DIR}")"
export EXTRA_HELM_ARGS=""
source .github/tests/charts.sh
[ "${scenario}" != "default" ] && kubectl create namespace "${scenario}"
[ -x "${TEST_DIR}/pre-install.sh" ] && "${TEST_DIR}/pre-install.sh"
[ -f "${TEST_DIR}/.env" ] && source "${TEST_DIR}/.env"
+24
View File
@@ -0,0 +1,24 @@
#!/usr/bin/env bash
SCRIPT=$(readlink -f "$0")
SCRIPTPATH=$(dirname "$SCRIPT")
CHARTJSON=$SCRIPTPATH/../../tests/charts.json
jq -r ".[].name" "${CHARTJSON}" | while read -r CHART; do
ENTRYQUERY='.[] | select(.name == "'$CHART'")'
REPO_URL="$(jq -r "$ENTRYQUERY | .repo" "${CHARTJSON}")"
VERSION="$(jq -r "$ENTRYQUERY | .version" "${CHARTJSON}")"
echo Processing: ${CHART}
echo " repo: $REPO_URL"
echo " current version: $VERSION"
helm repo add "$CHART" "$REPO_URL" > /dev/null
helm repo update "$CHART" > /dev/null
LATEST_VERSION=$(helm search repo --regexp "$CHART/$CHART\v" -o json | jq -r '.[0].version')
echo " latest version: $LATEST_VERSION"
if [ "x$VERSION" != "x$LATEST_VERSION" ]; then
echo " New version found!"
jq "( $ENTRYQUERY ).version |= "'"${LATEST_VERSION}"' "${CHARTJSON}" > /tmp/$$
mv /tmp/$$ "${CHARTJSON}"
fi
done