Skip to content

fix(core): handle Enter on Android via beforeinput and keypress #1

fix(core): handle Enter on Android via beforeinput and keypress

fix(core): handle Enter on Android via beforeinput and keypress #1

Workflow file for this run

name: Device tests
# Real-device tests on BrowserStack, as part of normal CI. Requires the
# BROWSERSTACK_USERNAME / BROWSERSTACK_ACCESS_KEY repository secrets; see
# tests/device/README.md. Fork PRs have no secrets — the suite self-skips
# and the job passes as a no-op.
on:
push:
branches:
- main
pull_request:
types: [opened, synchronize, reopened, edited]
workflow_dispatch:
inputs:
device_filter:
description: "Substring of a device id from tests/device/devices.ts"
required: false
default: ""
# Device minutes are metered: a new push to the same PR supersedes the
# previous run.
concurrency:
group: device-tests-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
permissions:
contents: read
jobs:
device-tests:
# `edited` fires for title/body/base changes alike; only a base retarget
# changes the merge result (routine in a PR stack), so title and body
# edits don't spend device minutes.
if: github.event.action != 'edited' || github.event.changes.base != null
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: voidzero-dev/setup-vp@313600b80b104eadebb9111787d37a2e83e014ca # v1.17.0
with:
node-version-file: ".node-version"
cache: true
- name: Install dependencies
run: vp install
- name: Start playground dev server
run: |
vp run dev &
for _ in $(seq 1 120); do
if curl -sf http://127.0.0.1:5173/ > /dev/null; then exit 0; fi
sleep 2
done
echo "playground dev server never came up" >&2
exit 1
- name: Run device tests
env:
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}
BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
DEVICE_FILTER: ${{ inputs.device_filter }}
run: vp run test:device
- name: Upload screenshots
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: device-test-screenshots
path: tests/device/.artifacts/
if-no-files-found: ignore