diff --git a/.github/workflows/ci-tests-e2e.yaml b/.github/workflows/ci-tests-e2e.yaml index c1e0af411..bdf6d43e5 100644 --- a/.github/workflows/ci-tests-e2e.yaml +++ b/.github/workflows/ci-tests-e2e.yaml @@ -7,17 +7,25 @@ on: pull_request: branches-ignore: [wip/*, draft/*, temp/*, vue-nodes-migration, sno-playwright-*] + # Run after i18n workflow completes for version-bump PRs + workflow_run: + workflows: ['i18n: Update Core'] + types: [completed] concurrency: - group: ${{ github.workflow }}-${{ github.ref }} + group: ${{ github.workflow }}-${{ github.event.workflow_run.head_branch || github.ref }} cancel-in-progress: true jobs: setup: runs-on: ubuntu-latest + # Skip version-bump PRs on pull_request (they run via workflow_run after i18n completes) + if: ${{ !(github.event_name == 'pull_request' && startsWith(github.head_ref, 'version-bump-')) }} steps: - name: Checkout repository uses: actions/checkout@v5 + with: + ref: ${{ github.event.workflow_run.head_branch || github.ref }} - name: Setup frontend uses: ./.github/actions/setup-frontend with: @@ -52,6 +60,8 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v5 + with: + ref: ${{ github.event.workflow_run.head_branch || github.ref }} - name: Download built frontend uses: actions/download-artifact@v4 with: @@ -99,6 +109,8 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v5 + with: + ref: ${{ github.event.workflow_run.head_branch || github.ref }} - name: Download built frontend uses: actions/download-artifact@v4 with: @@ -143,6 +155,8 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v5 + with: + ref: ${{ github.event.workflow_run.head_branch || github.ref }} - name: Install pnpm uses: pnpm/action-setup@v4 @@ -178,12 +192,30 @@ jobs: # Post starting comment for non-forked PRs comment-on-pr-start: runs-on: ubuntu-latest - if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false + if: | + (github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false) || + (github.event_name == 'workflow_run') permissions: pull-requests: write steps: - name: Checkout repository uses: actions/checkout@v5 + with: + ref: ${{ github.event.workflow_run.head_branch || github.ref }} + + - name: Get PR number for workflow_run + id: get-pr + if: github.event_name == 'workflow_run' + uses: actions/github-script@v7 + with: + script: | + const { data: prs } = await github.rest.pulls.list({ + owner: context.repo.owner, + repo: context.repo.repo, + state: 'open', + }); + const pr = prs.find(p => p.head.sha === context.payload.workflow_run.head_sha); + return pr?.number || ''; - name: Get start time id: start-time @@ -193,10 +225,12 @@ jobs: env: GITHUB_TOKEN: ${{ github.token }} run: | + PR_NUMBER="${{ github.event.pull_request.number || steps.get-pr.outputs.result }}" + BRANCH="${{ github.head_ref || github.event.workflow_run.head_branch }}" chmod +x scripts/cicd/pr-playwright-deploy-and-comment.sh ./scripts/cicd/pr-playwright-deploy-and-comment.sh \ - "${{ github.event.pull_request.number }}" \ - "${{ github.head_ref }}" \ + "$PR_NUMBER" \ + "$BRANCH" \ "starting" \ "${{ steps.start-time.outputs.time }}" @@ -204,13 +238,33 @@ jobs: deploy-and-comment: needs: [playwright-tests, merge-reports] runs-on: ubuntu-latest - if: always() && github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false + if: | + always() && ( + (github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false) || + (github.event_name == 'workflow_run') + ) permissions: pull-requests: write contents: read steps: - name: Checkout repository uses: actions/checkout@v5 + with: + ref: ${{ github.event.workflow_run.head_branch || github.ref }} + + - name: Get PR number for workflow_run + id: get-pr + if: github.event_name == 'workflow_run' + uses: actions/github-script@v7 + with: + script: | + const { data: prs } = await github.rest.pulls.list({ + owner: context.repo.owner, + repo: context.repo.repo, + state: 'open', + }); + const pr = prs.find(p => p.head.sha === context.payload.workflow_run.head_sha); + return pr?.number || ''; - name: Download all playwright reports uses: actions/download-artifact@v4 @@ -223,10 +277,12 @@ jobs: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} GITHUB_TOKEN: ${{ github.token }} - GITHUB_SHA: ${{ github.event.pull_request.head.sha }} + GITHUB_SHA: ${{ github.event.pull_request.head.sha || github.event.workflow_run.head_sha }} run: | + PR_NUMBER="${{ github.event.pull_request.number || steps.get-pr.outputs.result }}" + BRANCH="${{ github.head_ref || github.event.workflow_run.head_branch }}" bash ./scripts/cicd/pr-playwright-deploy-and-comment.sh \ - "${{ github.event.pull_request.number }}" \ - "${{ github.head_ref }}" \ + "$PR_NUMBER" \ + "$BRANCH" \ "completed" #### END Deployment and commenting (non-forked PRs only)