<aside> ☝

PR testing requires preview environments.

</aside>

  1. Open a PR to add a few GitHub Actions

  2. Add this GitHub Workflow that will be responsible for creating the QA Wolf Test Results check run in the pull request so that it can be merged without any constraints. However, this check still needs to pass in the merge queue so it can be merged.

    name: Create passing QA Wolf check for pull request
    
    on:
      pull_request:
        types: [opened, reopened, synchronize]
    
    jobs:
      qawolf_check_creation:
        runs-on: ubuntu-latest
        permissions:
          checks: write
          pull-requests: read
        steps:
          - name: Create passing check for pull request
            uses: actions/github-script@v6
            with:
              script: |
                await github.rest.checks.create({
                  owner: context.repo.owner,
                  repo: context.repo.repo,
                  name: 'QA Wolf Test Results',
                  head_sha: context.payload.pull_request.head.sha,
                  status: 'completed',
                  conclusion: 'success',
                  output: {
                    title: 'QA Wolf Test Results',
                    summary: 'QA Wolf approved PRs by default, expecting E2E test runs in the merge queues.'
                  }
                });
    
  3. Add this GitHub Workflow to trigger preview environment testing in the merge queues:

    name: Test preview environment
    
    on:
      pull_request:
      merge_group:
    
    jobs:
      test-preview-environment:
        name: Trigger wolf tests
        runs-on: ubuntu-latest
        needs:
    	    - step-that-waits-your-preview-env-to-come-up
        steps:
    	    - name: Notify QA Wolf of deployment
            uses: qawolf/notify-qawolf-on-deploy-action@v1
            if: ${{ github.event_name == 'merge_group' }}
            with:
              qawolf-api-key: "${{ secrets.QAWOLF_API_KEY }}"
              deployment-url: "${{ possible-preview-url }}"
              deployment-type: "check-with-support"
              # Allow the same PR to be tested multiple times in the merge queue
              deduplication-key: "${{ github.ref }}"
            secrets:
              GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    
  4. Merge the PR.

  5. Go into https://github.com/ORG/REPO/settings/rules and create/edit a rule that affects your main branch. Check Require status checks to pass, and add QA Wolf Test Results as a required check.

  6. Your merge queue will only merge after QA Wolf tests pass.