diff --git a/.github/workflows/connector-tests.yml b/.github/workflows/connector-tests.yml index b4e02fecb..4f6cedee0 100644 --- a/.github/workflows/connector-tests.yml +++ b/.github/workflows/connector-tests.yml @@ -25,7 +25,7 @@ concurrency: jobs: cdk_changes: name: Get Changes - runs-on: ubuntu-24.04 + runs-on: ubuntu-22.04 permissions: statuses: write pull-requests: read @@ -62,7 +62,7 @@ jobs: # Forked PRs are handled by the community_ci.yml workflow # If the condition is not met the job will be skipped (it will not fail) # runs-on: connector-test-large - runs-on: ubuntu-24.04 + runs-on: ubuntu-22.04 timeout-minutes: 360 # 6 hours strategy: fail-fast: false @@ -96,6 +96,8 @@ jobs: name: "Check: '${{matrix.connector}}' (skip=${{needs.cdk_changes.outputs['src'] == 'false' || needs.cdk_changes.outputs[matrix.cdk_extra] == 'false'}})" permissions: checks: write + contents: write # Required for creating commit statuses + pull-requests: read steps: - name: Abort if extra not changed (${{matrix.cdk_extra}}) id: no_changes @@ -127,6 +129,22 @@ jobs: uses: actions/setup-python@v5 with: python-version: "3.10" + # Create initial pending status for test report + - name: Create Pending Test Report Status + if: steps.no_changes.outputs.status != 'cancelled' + env: + GH_TOKEN: ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }} + run: | + HEAD_SHA="${{ github.event.pull_request.head.sha || github.sha }}" + gh api \ + --method POST \ + -H "Accept: application/vnd.github+json" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + repos/${{ github.repository }}/statuses/$HEAD_SHA \ + -f state="pending" \ + -f description="Running connector tests..." \ + -f context="${{ matrix.connector }} Test Report" + - name: Test Connector if: steps.no_changes.outputs.status != 'cancelled' timeout-minutes: 90 @@ -173,6 +191,39 @@ jobs: echo "success=${success}" >> $GITHUB_OUTPUT echo "html_report_url=${html_report_url}" >> $GITHUB_OUTPUT + # Update the test report status with results + - name: Update Test Report Status + if: always() && steps.no_changes.outputs.status != 'cancelled' && steps.evaluate_output.outcome == 'success' + env: + GH_TOKEN: ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }} + run: | + HEAD_SHA="${{ github.event.pull_request.head.sha || github.sha }}" + gh api \ + --method POST \ + -H "Accept: application/vnd.github+json" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + repos/${{ github.repository }}/statuses/$HEAD_SHA \ + -f state="${{ steps.evaluate_output.outputs.success == 'true' && 'success' || 'failure' }}" \ + -f target_url="${{ steps.evaluate_output.outputs.html_report_url }}" \ + -f description="Click Details to view the test report" \ + -f context="${{ matrix.connector }} Test Report" + + # Create failure status if report generation failed + - name: Create Report Generation Failed Status + if: always() && steps.no_changes.outputs.status != 'cancelled' && steps.evaluate_output.outcome != 'success' + env: + GH_TOKEN: ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }} + run: | + HEAD_SHA="${{ github.event.pull_request.head.sha || github.sha }}" + gh api \ + --method POST \ + -H "Accept: application/vnd.github+json" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + repos/${{ github.repository }}/statuses/$HEAD_SHA \ + -f state="failure" \ + -f description="Failed to run connector tests." \ + -f context="${{ matrix.connector }} Test Report" + # Upload the job output to the artifacts - name: Upload Job Output id: upload_job_output