fix incremental logic
This commit is contained in:
+29
-33
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user