From cd35835183ffd7ad52b8ad6d6bf8ea02e08e1cb8 Mon Sep 17 00:00:00 2001 From: Stas Moreinis Date: Fri, 23 Jan 2026 12:50:44 -0800 Subject: [PATCH] Fix pending Integration Tests check for non-agentex PRs The "Integration Tests Summary" check is required by branch protection, but the workflow only triggered on changes to agentex/**. This caused PRs that only modify other files (like dependency updates) to have a perpetually pending check. Changes: - Remove paths filter from pull_request trigger so workflow always runs - Add "Detect Changes" job that checks if agentex/ files changed - Gate test jobs on the changes detection output - Summary job always runs to satisfy branch protection, but reports "skipped" when no agentex changes detected --- .github/workflows/integration-tests.yml | 65 +++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 4 deletions(-) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index dc42444..667bf33 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -6,8 +6,8 @@ permissions: on: pull_request: - paths: - - "agentex/**" + # No paths filter - workflow always triggers so required check is created + # Actual test execution is gated by the 'changes' job below push: branches: - main @@ -22,8 +22,52 @@ on: default: main jobs: + changes: + name: "Detect Changes" + runs-on: ubuntu-latest + outputs: + should-run: ${{ steps.check.outputs.should-run }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Check for agentex changes + id: check + run: | + # Always run for workflow_dispatch + if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then + echo "should-run=true" >> $GITHUB_OUTPUT + echo "✅ Running: workflow_dispatch trigger" + exit 0 + fi + + # Always run for push events (they already have paths filter) + if [[ "${{ github.event_name }}" == "push" ]]; then + echo "should-run=true" >> $GITHUB_OUTPUT + echo "✅ Running: push event (paths filter already applied)" + exit 0 + fi + + # For PRs, check if agentex/ files changed + BASE_SHA="${{ github.event.pull_request.base.sha }}" + HEAD_SHA="${{ github.sha }}" + + echo "Comparing $BASE_SHA..$HEAD_SHA" + + if git diff --name-only "$BASE_SHA" "$HEAD_SHA" | grep -q '^agentex/'; then + echo "should-run=true" >> $GITHUB_OUTPUT + echo "✅ Running: agentex/ files changed" + else + echo "should-run=false" >> $GITHUB_OUTPUT + echo "⏭️ Skipping: no agentex/ files changed" + git diff --name-only "$BASE_SHA" "$HEAD_SHA" | head -20 + fi + discover-agent-images: name: "Discover Tutorial Agent Images" + needs: changes + if: needs.changes.outputs.should-run == 'true' runs-on: ubuntu-latest outputs: agent-matrix: ${{ steps.discover.outputs.agent-matrix }} @@ -446,13 +490,25 @@ jobs: retention-days: 1 # Summary job to ensure the workflow fails if any test fails + # This job ALWAYS runs to satisfy branch protection requirements integration-tests-summary: name: "Integration Tests Summary" runs-on: ubuntu-latest - needs: [discover-agent-images, run-integration-tests] - if: always() # Run even if some tests fail + needs: [changes, discover-agent-images, run-integration-tests] + if: always() # Always run to create the required status check steps: + - name: Skip if no agentex changes + if: needs.changes.outputs.should-run != 'true' + run: | + echo "# ⏭️ Integration Tests Skipped" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "No changes detected in \`agentex/\` directory." >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "This PR only modifies files outside the agentex backend, so integration tests are not required." >> $GITHUB_STEP_SUMMARY + echo "✅ Skipped - no agentex/ changes" + - name: Download all test results + if: needs.changes.outputs.should-run == 'true' uses: actions/download-artifact@v4 with: pattern: test-result-* @@ -461,6 +517,7 @@ jobs: continue-on-error: true - name: Generate Integration Test Summary + if: needs.changes.outputs.should-run == 'true' run: | echo "# 🧪 AgentEx Integration Tests Summary" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY