diff options
Diffstat (limited to 'check-jinja2.sh')
-rwxr-xr-x | check-jinja2.sh | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/check-jinja2.sh b/check-jinja2.sh index 7d74197..9bc57c7 100755 --- a/check-jinja2.sh +++ b/check-jinja2.sh @@ -5,37 +5,45 @@ set +o errexit git submodule update --init --remote 2>/dev/null GEN_CFG='./pharos/config/utils/generate_config.py' INSTALLER_ADAPTERS='./pharos/config/installers/*' +TMPF='/tmp/out.yml' # should be outside Jenkins WS to prevent data leakage RC=0 # Build a table header, using ';' as column sep -SUMMARY='PDF/Installer;' +SUMMARY='PDF Verify Matrix;YAML Lint;' for adapter in ${INSTALLER_ADAPTERS}; do SUMMARY+="$(basename "${adapter}");" done # Iterate all PDFs, check with each installer adapter, log results while IFS= read -r lab_config; do - SUMMARY+="\n${lab_config#labs/};" + valid_yaml='OK' + echo -e "\n\nyamllint -s ${lab_config}" + if ! yamllint -s "${lab_config}"; then valid_yaml='FAIL'; fi + SUMMARY+="\n${lab_config#labs/};${valid_yaml};" for adapter in ${INSTALLER_ADAPTERS}; do pdf_inst=0 pdf_inst_pass=0 + pdf_yaml_pass=0 while IFS= read -r jinja_template; do echo -e "\n${GEN_CFG} -y ${lab_config} -j ${jinja_template}" if "${GEN_CFG}" -y "${lab_config}" \ - -j "${jinja_template}" > /dev/null; then + -j "${jinja_template}" > "${TMPF}"; then echo 'Result: PASS' ((pdf_inst_pass+=1)) + echo -e "\nyamllint -s ${jinja_template%.j2}" + if yamllint -s "${TMPF}"; then ((pdf_yaml_pass+=1)); fi else echo 'Result: FAIL' RC=1 fi ((pdf_inst+=1)) done < <(find "${adapter}" -name '*.j2') - SUMMARY+="${pdf_inst_pass}/${pdf_inst};" + SUMMARY+="${pdf_yaml_pass}/${pdf_inst_pass}/${pdf_inst};" done done < <(find 'pharos/config' 'labs' -name 'pod*.yaml') -echo -e '\n' +rm -f "${TMPF}" +echo -e '\n\nNOTE: tuple fmt: (valid YAML output/sucessful parse/templates).\n' echo -e "${SUMMARY}" | sed -e 's/^/;/g' -e 's/;/;| /g' | column -t -s ';' cat <<EOF |