From c21a8cb9bd4debbca6ea49a21405b99fc9ce57b0 Mon Sep 17 00:00:00 2001 From: kentsanggds Date: Fri, 7 Feb 2025 15:16:53 +0000 Subject: [PATCH] Add govuk-app-linter.sh --- govuk-app-linter.sh | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 govuk-app-linter.sh diff --git a/govuk-app-linter.sh b/govuk-app-linter.sh new file mode 100755 index 00000000000..bdb13a5c142 --- /dev/null +++ b/govuk-app-linter.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# set -e + +ENVIRONMENTS=("integration" "staging" "production") + +for env in "${ENVIRONMENTS[@]}"; do + array_length=$(yq e ".govukApplications | length - 1" "./charts/app-config/ci/$env-values.yaml") + + if [ "$array_length" -le 0 ] ; then + continue; + fi + + echo "=================== $env ==================="; + + declare -i errors=0; + + # expand all the aliases + yq 'explode(.)' "./charts/app-config/ci/$env-values.yaml" > "lint-tmp/$env-exploded.yaml" + + for app_index in $(seq 0 "$array_length");do + filename="./lint-tmp/$(yq e ".govukApplications[$app_index].name" "./charts/app-config/ci/$env-values.yaml")-chart.yaml" + + echo "$app_index/$array_length: linting $filename"; + + yq e ".govukApplications[$app_index].helmValues" "lint-tmp/$env-exploded.yaml" > "$filename"; + + output=$(helm lint --quiet -f "$filename" ./charts/generic-govuk-app) + if [[ "$output" == *"[ERROR]"* ]]; then + echo "$output"; + errors+=1; + fi + done + + if [[ errors -gt 0 ]]; then + echo "$errors lint errors found in $env values"; + exit 1 + fi + +done