- compose.matrix.yml: add trailing newline
- compose.ftp-222*.yml: fix YAML indentation (8->6 spaces)
- entrypoint.sh.tmpl: fix SC2198 ([ -n "$@" ] -> [ $# -gt 0 ])
- All .tmpl files: migrate from {{ env }} to {{ getenv }} for gomplate v5 compat
- uploads.ini.tmpl: add {{- / -}} whitespace trimming, fix double-space typo
- tests/run.sh: only run ShellCheck on *.sh.tmpl files
- tests/test_shell.sh: gracefully skip if shellcheck not installed
- tests/test_templates.sh: remove dead render() function,
gracefully skip if gomplate not found, use set -a/. for env sourcing
- tests/test_compose_config.sh: validate override files combined
with compose.yml, skip partial snippets needing more context
- README.md: add test instructions with brew install
55 lines
1.7 KiB
Bash
Executable File
55 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
# Root of the project directory
|
|
ROOT="$(dirname "$(realpath "$0")")"
|
|
|
|
echo "==================================="
|
|
echo " WordPress Recipe Test Suite"
|
|
echo "==================================="
|
|
echo ""
|
|
|
|
# Collect all compose files for YAML validation
|
|
COMPOSE_FILES=()
|
|
while IFS= read -r f; do
|
|
COMPOSE_FILES+=("$f")
|
|
done < <(find "$ROOT/.." -maxdepth 1 -name 'compose*.yml' | sort)
|
|
|
|
# Collect all tmpl files for shellcheck (only those with bash content)
|
|
SHELL_TMPL_FILES=()
|
|
while IFS= read -r f; do
|
|
SHELL_TMPL_FILES+=("$f")
|
|
done < <(find "$ROOT/.." -maxdepth 1 -name '*.sh.tmpl' | sort)
|
|
|
|
# Track total failures across all test suites
|
|
failures=0
|
|
|
|
# Validate YAML syntax of all compose files
|
|
echo "========================================================================"
|
|
"$ROOT/test_yaml.sh" "${COMPOSE_FILES[@]}" || failures=$((failures + 1))
|
|
echo ""
|
|
|
|
# Lint shell scripts inside Go templates (after stripping template tags)
|
|
echo "========================================================================"
|
|
"$ROOT/test_shell.sh" "${SHELL_TMPL_FILES[@]}" || failures=$((failures + 1))
|
|
echo ""
|
|
|
|
# Render templates with fixture env files and verify expected output
|
|
echo "========================================================================"
|
|
"$ROOT/test_templates.sh" || failures=$((failures + 1))
|
|
echo ""
|
|
|
|
# Validate compose files against the Docker Compose specification
|
|
echo "========================================================================"
|
|
"$ROOT/test_compose_config.sh" || failures=$((failures + 1))
|
|
echo ""
|
|
|
|
echo "==================================="
|
|
if [ "$failures" -eq 0 ]; then
|
|
echo " All tests passed!"
|
|
else
|
|
echo " $failures test suite(s) failed"
|
|
fi
|
|
echo "==================================="
|
|
exit "$failures"
|