Files
query-orchestration/scripts/tests.yml
T
Michael McGuinness 752fb2e2c0 Merged in feature/chc_1 (pull request #120)
Text Extraction Clean Up + Parallelization

* merged_Call

* directchildren

* bitofimprovements

* go

* parallel

* fixfullsuite

* pondforconcurrency

* comments

* muchdone

* bitsofclean

* stabilisedtests

* snappy

* threadpooltests

* childelements

* testspassed
2025-04-25 17:02:50 +00:00

118 lines
3.3 KiB
YAML

---
# https://taskfile.dev
version: "3"
vars:
COVERAGE_FILE: "{{.OUT_DIR}}/coverage.out"
INTERNAL: "./internal/..."
API: "./api/..."
PKG: "./pkg/..."
CMD: "./cmd/..."
UNIT_PARALLEL: 16
E2E_PARALLEL: 1
# yamllint disable-line rule:line-length
EXCLUDED_FILES: ".gen.go|internal/serviceconfig/observability/prometheus/generator/main.go|internal/cognitoauth/middleware.go|internal/cognitoauth/token.go|internal/cognitoauth/auth.go|internal/cognitoauth/handler.go|internal/cognitoauth/models.go|api/queryAPI/authHandlers.go|api/queryAPI/homehandler.go"
includes:
docker:
dir: "{{.CONTEXT}}"
taskfile: docker.yml
internal: true
tasks:
mocks:generate:
run: once
cmds:
- rm -rf mocks/*
- go tool mockery
unit:cmd:
internal: true
vars:
SKIP_GENERATE: false
cmds:
- task: mocks:generate
- mkdir -p {{.OUT_DIR}}
- |
go test -parallel {{.UNIT_PARALLEL}} \
{{.INTERNAL}} {{.API}} {{.CLI_ARGS}}
unit:short:
cmds:
- task: unit:cmd
vars:
CLI_ARGS: -short
SKIP_GENERATE: true
unit:aws:
cmds:
- |
find ./internal -name "*.aws_test.go" -exec dirname {} \; | sort -u \
| xargs go test -short -tags aws
unit:
vars:
TMP_FILE: "{{.OUT_DIR}}/coverage.tmp"
FILTER_COVERAGE_FILE: "{{.OUT_DIR}}/filtered_coverage.out"
cmds:
- task: unit:cmd
vars:
CLI_ARGS: |
-coverpkg={{.INTERNAL}},{{.API}} \
-coverprofile={{.COVERAGE_FILE}}
- task: coverage
silent: true
endtoend:
deps:
- docker:build
cmds:
- go test -count=1 -parallel {{.E2E_PARALLEL}} ./test/...
coverage:
vars:
TMP_FILE: "{{.OUT_DIR}}/coverage.tmp"
FILTER_COVERAGE_FILE: "{{.OUT_DIR}}/filtered_coverage.out"
cmds:
- |
grep -v -E "{{.EXCLUDED_FILES}}" {{.COVERAGE_FILE}} \
> {{.FILTER_COVERAGE_FILE}}
- go tool cover -func={{.FILTER_COVERAGE_FILE}} > {{.TMP_FILE}}
- |
COVERAGE=$(grep total: {{.TMP_FILE}} \
| awk '{print $3}' | sed 's/%//' | bc)
echo "Coverage Threshold: {{.COVERAGE_THRESHOLD}}%"
echo "Total Coverage: $COVERAGE%"
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
exit 1
fi
echo "✅ All coverage checks passed!"
all:
cmds:
- mkdir -p {{.OUT_DIR}}
- |
go test -count=1 -parallel {{.UNIT_PARALLEL}} \
-coverpkg={{.INTERNAL}},{{.API}},{{.PKG}} \
-coverprofile={{.COVERAGE_FILE}} \
./...
- task: coverage