Skip to content

feat(roll): roll to ToT Playwright (roll/next-21-12-24) #4183

feat(roll): roll to ToT Playwright (roll/next-21-12-24)

feat(roll): roll to ToT Playwright (roll/next-21-12-24) #4183

name: CI
on:
push:
branches:
- main
pull_request:
types: [opened, synchronize, reopened, closed]
branches:
- main
permissions:
contents: read
pull-requests: write
jobs:
build_and_deploy_job:
# If pushed to the main branch or a Pull Request to the main repo gets opened
if: (github.event_name == 'push' && github.repository == 'microsoft/playwright.dev' && contains(github.ref, 'main')) || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.event.action != 'closed')
runs-on: ubuntu-latest
name: Build and Deploy Job
steps:
- uses: actions/checkout@v4
- name: Build And Deploy
id: builddeploy
uses: Azure/static-web-apps-deploy@v1
with:
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_DELIGHTFUL_FOREST_0A29F6210 }}
repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments)
action: "upload"
###### Repository/Build Configurations - These values can be configured to match your app requirements. ######
# For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig
app_location: "/" # App source code path
api_location: "" # Api source code path - optional
output_location: "/build" # Built app content directory - optional
###### End of Repository/Build Configurations ######
close_pull_request_job:
# Only when Pull Requests gets closed which are no forks
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.event.action == 'closed'
runs-on: ubuntu-latest
name: Close Pull Request Job
steps:
- name: Close Pull Request
id: closepullrequest
uses: Azure/static-web-apps-deploy@v1
with:
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_DELIGHTFUL_FOREST_0A29F6210 }}
action: "close"
test:
name: Playwright
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: Build site
run: npm run build
- name: Install Playwright Browsers
run: npx playwright install --with-deps
- name: Run Playwright tests
run: npx playwright test
- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 30
auto-merge:
name: Auto Merge
runs-on: ubuntu-latest
needs: [build_and_deploy_job, test]
if: github.repository == 'microsoft/playwright.dev' && startsWith(github.head_ref, 'roll/next-')
steps:
- name: Merge pull request
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }}
script: |
await github.rest.pulls.merge({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number,
merge_method: 'squash',
commit_message: '',
});