fix incremental logic

This commit is contained in:
jay brown
2025-07-22 11:42:47 -07:00
parent a9d81a1094
commit 00a46eb629
+29 -33
View File
@@ -55,46 +55,42 @@ tasks:
TEST_TARGETS=""
NEED_COVERAGE_MERGE=false
# Check if we should run full tests
# INCREMENTAL=false takes absolute precedence - force full test mode
if [ "{{.INCREMENTAL}}" = "false" ]; then
echo "Running full test suite (INCREMENTAL=false)..."
TEST_MODE="full"
fi
else
# Only process incremental logic if INCREMENTAL != false
if [ ! -f "{{.COVERAGE_FILE}}" ]; then
echo "No existing coverage file found, running full tests to establish baseline"
TEST_MODE="full"
elif ! git rev-parse origin/main >/dev/null 2>&1; then
echo "Cannot find origin/main branch, defaulting to full tests"
TEST_MODE="full"
elif git rev-parse origin/main >/dev/null 2>&1; then
echo "Running incremental test suite (INCREMENTAL=true)..."
echo "Checking for Go files changed since origin/main..."
if [ "{{.INCREMENTAL}}" = "true" ] && [ ! -f "{{.COVERAGE_FILE}}" ]; then
echo "No existing coverage file found, running full tests to establish baseline"
TEST_MODE="full"
fi
CHANGED_FILES=$(git diff --name-only origin/main...HEAD | grep "\.go$" || echo "")
echo "Found $(echo "$CHANGED_FILES" | grep -v "^$" | wc -l) changed Go files since origin/main"
if [ "{{.INCREMENTAL}}" = "true" ] && [ -f "{{.COVERAGE_FILE}}" ] && ! git rev-parse origin/main >/dev/null 2>&1; then
echo "Cannot find origin/main branch, defaulting to full tests"
TEST_MODE="full"
fi
# Handle incremental mode
if [ "{{.INCREMENTAL}}" = "true" ] && [ -f "{{.COVERAGE_FILE}}" ] && git rev-parse origin/main >/dev/null 2>&1; then
echo "Running incremental test suite (INCREMENTAL=true)..."
echo "Checking for Go files changed since origin/main..."
CHANGED_FILES=$(git diff --name-only origin/main...HEAD | grep "\.go$" || echo "")
echo "Found $(echo "$CHANGED_FILES" | grep -v "^$" | wc -l) changed Go files since origin/main"
if [ -z "$CHANGED_FILES" ]; then
echo "No Go files changed, skipping tests"
TEST_MODE="skip"
else
CHANGED_PKGS=$(echo "$CHANGED_FILES" | xargs dirname | sort -u | xargs -I{} go list ./{} 2>/dev/null || echo "")
echo "Changed packages: $CHANGED_PKGS"
if [ -z "$CHANGED_PKGS" ]; then
echo "No valid Go packages affected, skipping tests"
if [ -z "$CHANGED_FILES" ]; then
echo "No Go files changed, skipping tests"
TEST_MODE="skip"
else
AFFECTED_PKGS=$(echo "$CHANGED_PKGS" | tr ' ' '\n' | sort -u | tr '\n' ' ')
echo "Testing affected packages: $AFFECTED_PKGS"
TEST_MODE="incremental"
TEST_TARGETS="$AFFECTED_PKGS"
NEED_COVERAGE_MERGE=true
CHANGED_PKGS=$(echo "$CHANGED_FILES" | xargs dirname | sort -u | xargs -I{} go list ./{} 2>/dev/null || echo "")
echo "Changed packages: $CHANGED_PKGS"
if [ -z "$CHANGED_PKGS" ]; then
echo "No valid Go packages affected, skipping tests"
TEST_MODE="skip"
else
AFFECTED_PKGS=$(echo "$CHANGED_PKGS" | tr ' ' '\n' | sort -u | tr '\n' ' ')
echo "Testing affected packages: $AFFECTED_PKGS"
TEST_MODE="incremental"
TEST_TARGETS="$AFFECTED_PKGS"
NEED_COVERAGE_MERGE=true
fi
fi
fi
fi