Skip to content

feat(browser): introduce built-in locators #10793

feat(browser): introduce built-in locators

feat(browser): introduce built-in locators #10793

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:
concurrency:
group: ci-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/.cache/ms-playwright
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-and-cache
- name: Install
run: pnpm i
- name: Lint
run: pnpm run lint
test:
runs-on: ${{ matrix.os }}
timeout-minutes: 30
strategy:
matrix:
os: [ubuntu-latest]
# Reset back to 20 after https://github.com/nodejs/node/issues/53648
node_version: [18, 20.14]
# node_version: [18, 20, 22] 22 when LTS is close enough
include:
- os: macos-14
node_version: 20.14
- os: windows-latest
node_version: 20.14
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@c65cd883420fd2eb864698a825fc4162dd94482c # v44.5.7
with:
files: |
docs/**
.github/**
!.github/workflows/ci.yml
**.md
- uses: ./.github/actions/setup-and-cache
if: steps.changed-files.outputs.only_changed != 'true'
with:
node-version: ${{ matrix.node_version }}
- uses: browser-actions/setup-chrome@v1
if: steps.changed-files.outputs.only_changed != 'true'
- name: Install
if: steps.changed-files.outputs.only_changed != 'true'
run: pnpm i
- name: Install Playwright Dependencies
if: steps.changed-files.outputs.only_changed != 'true'
run: pnpm exec playwright install chromium --with-deps
- name: Build
if: steps.changed-files.outputs.only_changed != 'true'
run: pnpm run build
- name: Test
if: steps.changed-files.outputs.only_changed != 'true'
run: pnpm run test:ci
- name: Test Examples
if: steps.changed-files.outputs.only_changed != 'true'
run: pnpm run test:examples
- name: Unit Test UI
if: steps.changed-files.outputs.only_changed != 'true'
run: pnpm run -C packages/ui test:ui
test-browser:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- macos-14
- windows-latest
browser:
- [chromium, chrome]
- [firefox, firefox]
- [webkit]
fail-fast: false
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@c65cd883420fd2eb864698a825fc4162dd94482c # v44.5.7
with:
files: |
docs/**
.github/**
!.github/workflows/ci.yml
**.md
- uses: ./.github/actions/setup-and-cache
if: steps.changed-files.outputs.only_changed != 'true'
with:
node-version: 20
- uses: browser-actions/setup-chrome@v1
if: ${{ steps.changed-files.outputs.only_changed != 'true' && matrix.browser[0] == 'chromium' }}
- uses: browser-actions/setup-firefox@v1
if: ${{ steps.changed-files.outputs.only_changed != 'true' && matrix.browser[0] == 'firefox' }}
- name: Install
if: steps.changed-files.outputs.only_changed != 'true'
run: pnpm i
- name: Install Playwright Dependencies
if: steps.changed-files.outputs.only_changed != 'true'
run: pnpm exec playwright install ${{ matrix.browser[0] }} --with-deps
- name: Build
if: steps.changed-files.outputs.only_changed != 'true'
run: pnpm run build
- name: Test Browser (playwright)
if: steps.changed-files.outputs.only_changed != 'true'
run: pnpm run test:browser:playwright
env:
BROWSER: ${{ matrix.browser[0] }}
- name: Test Browser (webdriverio)
run: pnpm run test:browser:webdriverio
if: ${{ steps.changed-files.outputs.only_changed != 'true' && matrix.browser[1] }}
env:
BROWSER: ${{ matrix.browser[1] }}