diff --git a/.github/workflows/quality-checks.yml b/.github/workflows/quality-checks.yml index ec51014a..0da907f3 100644 --- a/.github/workflows/quality-checks.yml +++ b/.github/workflows/quality-checks.yml @@ -20,8 +20,30 @@ jobs: cache-dependency-path: backend/go.sum - name: Run Go tests + id: go-tests working-directory: backend - run: go test -v -coverprofile=coverage.out ./... + run: | + go test -v -coverprofile=coverage.out ./... 2>&1 | tee test-output.txt + exit ${PIPESTATUS[0]} + + - name: Go Test Summary + if: always() + working-directory: backend + run: | + echo "## 🔧 Backend Test Results" >> $GITHUB_STEP_SUMMARY + if [ "${{ steps.go-tests.outcome }}" == "success" ]; then + echo "✅ **All tests passed**" >> $GITHUB_STEP_SUMMARY + PASS_COUNT=$(grep -c "^--- PASS" test-output.txt || echo "0") + echo "- Tests passed: $PASS_COUNT" >> $GITHUB_STEP_SUMMARY + else + echo "❌ **Tests failed**" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### Failed Tests:" >> $GITHUB_STEP_SUMMARY + echo '```' >> $GITHUB_STEP_SUMMARY + grep -E "^--- FAIL|FAIL\s+github" test-output.txt || echo "See logs for details" + grep -E "^--- FAIL|FAIL\s+github" test-output.txt >> $GITHUB_STEP_SUMMARY || echo "See logs for details" >> $GITHUB_STEP_SUMMARY + echo '```' >> $GITHUB_STEP_SUMMARY + fi - name: Upload coverage to Codecov uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5 @@ -57,8 +79,32 @@ jobs: run: npm ci - name: Run frontend tests + id: frontend-tests working-directory: frontend - run: npm run test:coverage + run: | + npm run test:coverage 2>&1 | tee test-output.txt + exit ${PIPESTATUS[0]} + + - name: Frontend Test Summary + if: always() + working-directory: frontend + run: | + echo "## ⚛️ Frontend Test Results" >> $GITHUB_STEP_SUMMARY + if [ "${{ steps.frontend-tests.outcome }}" == "success" ]; then + echo "✅ **All tests passed**" >> $GITHUB_STEP_SUMMARY + # Extract test counts from vitest output + if grep -q "Tests:" test-output.txt; then + grep "Tests:" test-output.txt | tail -1 >> $GITHUB_STEP_SUMMARY + fi + else + echo "❌ **Tests failed**" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### Failed Tests:" >> $GITHUB_STEP_SUMMARY + echo '```' >> $GITHUB_STEP_SUMMARY + # Extract failed test info from vitest output + grep -E "FAIL|✕|×|AssertionError|Error:" test-output.txt | head -30 >> $GITHUB_STEP_SUMMARY || echo "See logs for details" >> $GITHUB_STEP_SUMMARY + echo '```' >> $GITHUB_STEP_SUMMARY + fi - name: Upload coverage to Codecov uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5