Files
query-orchestration/scripts/tests.yml
T

96 lines
2.5 KiB
YAML
Raw Normal View History

2025-01-10 11:12:03 +00:00
---
2024-12-19 11:38:57 +00:00
# https://taskfile.dev
version: "3"
2024-12-19 11:38:57 +00:00
vars:
2025-01-10 11:12:03 +00:00
COVERAGE_FILE: "{{.OUT_DIR}}/coverage.out"
INTERNAL: "./internal/..."
API: "./api/..."
PKG: "./pkg/..."
CMD: "./cmd/..."
2024-12-19 11:38:57 +00:00
tasks:
mocks:generate:
2025-01-10 11:12:03 +00:00
cmds:
- rm -rf mocks/*
2025-01-10 11:12:03 +00:00
- mockery
unit:
cmds:
- task: unit:nocoverage
- task: unit:getcoverage
unit:short:
deps:
- mocks:generate
cmds:
- go test -short {{.INTERNAL}} {{.API}} {{.PKG}} {{.CMD}}
unit:nogen:
cmds:
- task: unit:cmd
- task: unit:getcoverage
unit:cmd:
internal: true
2024-12-19 11:38:57 +00:00
cmds:
- mkdir -p {{.OUT_DIR}}
2025-01-10 11:12:03 +00:00
- |
go test {{.INTERNAL}} {{.API}} \
-coverpkg={{.INTERNAL}},{{.API}} \
2025-01-15 19:45:51 +00:00
-coverprofile={{.COVERAGE_FILE}}
unit:nocoverage:
2024-12-19 11:38:57 +00:00
deps:
- mocks:generate
cmds:
- task: unit:cmd
unit:getcoverage:
2024-12-19 11:38:57 +00:00
vars:
2025-01-10 11:12:03 +00:00
TMP_FILE: "{{.OUT_DIR}}/coverage.tmp"
2025-01-15 19:45:51 +00:00
FILTER_COVERAGE_FILE: "{{.OUT_DIR}}/filtered_coverage.out"
2024-12-19 11:38:57 +00:00
cmds:
2025-01-15 19:45:51 +00:00
- grep -v ".gen.go" {{.COVERAGE_FILE}} > {{.FILTER_COVERAGE_FILE}}
- go tool cover -func={{.FILTER_COVERAGE_FILE}} > {{.TMP_FILE}}
2024-12-19 11:38:57 +00:00
- |
2025-01-10 11:12:03 +00:00
COVERAGE=$(grep total: {{.TMP_FILE}} \
| awk '{print $3}' | sed 's/%//' | bc)
2024-12-19 11:38:57 +00:00
echo "Coverage Threshold: {{.COVERAGE_THRESHOLD}}%"
echo "Total Coverage: $COVERAGE%"
2024-12-19 11:38:57 +00:00
if (( $(echo "$COVERAGE < {{.COVERAGE_THRESHOLD}}" | bc -l) )); then
echo "❌ Error: Total Coverage below Coverage Threshold"
FAIL=true
fi
echo "Function Coverage Threshold: {{.FUNCTION_COVERAGE_THRESHOLD}}%"
FAIL_FUNC=false
grep -v total: {{.TMP_FILE}} | while read -r line; do
FUNC_COV=$(echo "$line" | awk '{print $3}' | sed 's/%//' | bc)
if (( $(echo "$FUNC_COV < \
{{.FUNCTION_COVERAGE_THRESHOLD}}" | bc -l) )); then
if [ "$FAIL_FUNC" = false ]; then
echo "❌ Error: The following functions have coverage below "\
"{{.FUNCTION_COVERAGE_THRESHOLD}}%:"
FAIL_FUNC=true
FAIL=true
fi
echo "$line"
fi
done
if [ "$FAIL" = true ]; then
2024-12-19 11:38:57 +00:00
exit 1
fi
echo "✅ All coverage checks passed!"
2024-12-19 11:38:57 +00:00
silent: true
endtoend:
2024-12-19 11:38:57 +00:00
cmds:
- task generate
2025-01-10 12:58:14 +00:00
- task docker:build
- task: endtoend:cmd:nocache
endtoend:cmd:nocache:
cmds:
2025-01-10 12:58:14 +00:00
- go test -count=1 -v ./test/...
endtoend:cmd:nobuild:
2025-01-07 16:30:45 +00:00
cmds:
2025-01-10 12:58:14 +00:00
- go test -v ./test/...