Add an action to find new versions of helm charts (#184)
Co-authored-by: Marco Franssen <[email protected]>
This commit is contained in:
co-authored by
Marco Franssen
parent
2c360a50fd
commit
17d62f1246
@@ -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 }}"'
|
||||
@@ -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"
|
||||
|
||||
Executable
+24
@@ -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
|
||||
Reference in New Issue
Block a user