From b963e080152829b402efbacab35f25e1461ba235 Mon Sep 17 00:00:00 2001 From: Mattermost Build Date: Wed, 1 Apr 2026 18:36:05 +0200 Subject: [PATCH] ci: post success to required e2e status contexts when no relevant changes (#35880) (#35901) Automatic Merge --- .github/workflows/e2e-tests-ci.yml | 10 ++++++-- .github/workflows/e2e-tests-cypress.yml | 27 ++++++++++++++++++++++ .github/workflows/e2e-tests-playwright.yml | 27 ++++++++++++++++++++++ 3 files changed, 62 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e-tests-ci.yml b/.github/workflows/e2e-tests-ci.yml index 718e384ed75..ac554105294 100644 --- a/.github/workflows/e2e-tests-ci.yml +++ b/.github/workflows/e2e-tests-ci.yml @@ -186,7 +186,9 @@ jobs: needs: - resolve-pr - check-changes - if: needs.check-changes.outputs.should_run == 'true' + if: needs.resolve-pr.outputs.PR_NUMBER != '' + permissions: + statuses: write uses: ./.github/workflows/e2e-tests-cypress.yml with: commit_sha: "${{ needs.resolve-pr.outputs.COMMIT_SHA }}" @@ -195,6 +197,7 @@ jobs: enable_reporting: true report_type: "PR" pr_number: "${{ needs.resolve-pr.outputs.PR_NUMBER }}" + should_run: "${{ needs.check-changes.outputs.should_run }}" secrets: MM_LICENSE: "${{ secrets.MM_E2E_TEST_LICENSE_ONPREM_ENT }}" AUTOMATION_DASHBOARD_URL: "${{ secrets.MM_E2E_AUTOMATION_DASHBOARD_URL }}" @@ -208,7 +211,9 @@ jobs: needs: - resolve-pr - check-changes - if: needs.check-changes.outputs.should_run == 'true' + if: needs.resolve-pr.outputs.PR_NUMBER != '' + permissions: + statuses: write uses: ./.github/workflows/e2e-tests-playwright.yml with: commit_sha: "${{ needs.resolve-pr.outputs.COMMIT_SHA }}" @@ -217,6 +222,7 @@ jobs: enable_reporting: true report_type: "PR" pr_number: "${{ needs.resolve-pr.outputs.PR_NUMBER }}" + should_run: "${{ needs.check-changes.outputs.should_run }}" secrets: MM_LICENSE: "${{ secrets.MM_E2E_TEST_LICENSE_ONPREM_ENT }}" AWS_ACCESS_KEY_ID: "${{ secrets.CYPRESS_AWS_ACCESS_KEY_ID }}" diff --git a/.github/workflows/e2e-tests-cypress.yml b/.github/workflows/e2e-tests-cypress.yml index 22606d1f84a..485e8340e27 100644 --- a/.github/workflows/e2e-tests-cypress.yml +++ b/.github/workflows/e2e-tests-cypress.yml @@ -41,6 +41,11 @@ on: type: string required: false description: "Source branch name for webhook messages (e.g., 'master' or 'release-11.4')" + should_run: + type: string + required: false + default: "true" + description: "Set to 'false' to skip tests and post a success status without running E2E" secrets: MM_LICENSE: required: false @@ -135,9 +140,31 @@ jobs: *) echo "context_suffix=" >> $GITHUB_OUTPUT ;; esac + skip: + needs: + - generate-build-variables + if: inputs.should_run == 'false' + runs-on: ubuntu-24.04 + permissions: + statuses: write + steps: + - name: ci/post-skip-status + env: + GH_TOKEN: ${{ github.token }} + COMMIT_SHA: ${{ inputs.commit_sha }} + CONTEXT_NAME: "e2e-test/cypress-full/${{ inputs.server_edition || 'enterprise' }}${{ needs.generate-build-variables.outputs.context_suffix }}" + run: | + gh api repos/${{ github.repository }}/statuses/${COMMIT_SHA} \ + -f state=success \ + -f context="${CONTEXT_NAME}" \ + -f description="No E2E-relevant changes - skipped" \ + -f target_url="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" + echo "Posted success for ${CONTEXT_NAME}" + cypress-full: needs: - generate-build-variables + if: inputs.should_run != 'false' uses: ./.github/workflows/e2e-tests-cypress-template.yml with: test_type: full diff --git a/.github/workflows/e2e-tests-playwright.yml b/.github/workflows/e2e-tests-playwright.yml index f02a3c051bd..a92bd3d0944 100644 --- a/.github/workflows/e2e-tests-playwright.yml +++ b/.github/workflows/e2e-tests-playwright.yml @@ -41,6 +41,11 @@ on: type: string required: false description: "Source branch name for webhook messages (e.g., 'master' or 'release-11.4')" + should_run: + type: string + required: false + default: "true" + description: "Set to 'false' to skip tests and post a success status without running E2E" secrets: MM_LICENSE: required: false @@ -129,9 +134,31 @@ jobs: *) echo "context_suffix=" >> $GITHUB_OUTPUT ;; esac + skip: + needs: + - generate-build-variables + if: inputs.should_run == 'false' + runs-on: ubuntu-24.04 + permissions: + statuses: write + steps: + - name: ci/post-skip-status + env: + GH_TOKEN: ${{ github.token }} + COMMIT_SHA: ${{ inputs.commit_sha }} + CONTEXT_NAME: "e2e-test/playwright-full/${{ inputs.server_edition || 'enterprise' }}${{ needs.generate-build-variables.outputs.context_suffix }}" + run: | + gh api repos/${{ github.repository }}/statuses/${COMMIT_SHA} \ + -f state=success \ + -f context="${CONTEXT_NAME}" \ + -f description="No E2E-relevant changes - skipped" \ + -f target_url="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" + echo "Posted success for ${CONTEXT_NAME}" + playwright-full: needs: - generate-build-variables + if: inputs.should_run != 'false' uses: ./.github/workflows/e2e-tests-playwright-template.yml with: test_type: full