Files
livewire-material/.github/workflows/tests.yml
T
surtic86andClaude Opus 5 a7aeb3c4ec
tests / feature (push) Successful in 1m55s
tests / browser (chrome, chromium) (push) Successful in 7m48s
tests / browser (firefox, firefox) (push) Successful in 11m57s
tests / browser (safari, webkit) (push) Successful in 12m44s
Ask for PHP 8.5 and test one runtime
Nothing in the package needs a feature of either version: the floor sat
at 8.4 because that is where the scaffold put it, and Laravel 13 itself
asks only for 8.3. Two entries in the feature matrix bought a second run
of the same suite on a runtime the code cannot tell apart from the one
beside it.

2.3.0 asks for 8.5. The feature job loses its matrix and runs on 8.5
alone, so pint no longer needs the `if` that kept it from running twice;
the browser jobs were already pinned there. 2.2.0 stays available for an
application still on 8.4.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-20 21:41:03 +02:00

100 lines
2.7 KiB
YAML

name: tests
# Run by Gitea's act_runner. Nothing here needs a service container or a database.
on:
push:
branches:
- main
pull_request:
permissions:
contents: read
jobs:
feature:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup PHP
uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2
with:
php-version: '8.5'
tools: composer:v2
coverage: none
# material:scheme's tests run the bundled colour script through Node, and the prebuilt
# stylesheets' staleness test rebuilds them with the installed Vite.
- name: Setup Node
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: '22'
- name: Install dependencies
run: |
composer install --no-interaction --no-progress --prefer-dist
npm ci
- name: Check formatting
run: vendor/bin/pint --test
- name: Run feature tests
run: vendor/bin/pest --testsuite=Feature
# One job per engine: the floor is Chrome 125, Firefox 151 and Safari 18.4, and the
# components lean on platform features (dialog, popover, anchor positioning) that
# differ between them. Pest calls the engines chrome, firefox and safari; Playwright
# installs them as chromium, firefox and webkit.
browser:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- browser: chrome
playwright: chromium
- browser: firefox
playwright: firefox
- browser: safari
playwright: webkit
steps:
- name: Checkout code
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup PHP
uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2
with:
php-version: '8.5'
tools: composer:v2
coverage: none
- name: Setup Node
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: '22'
- name: Install dependencies
run: |
composer install --no-interaction --no-progress --prefer-dist
npm ci
- name: Build the Workbench assets
run: npm run build
- name: Install the browser
run: npx playwright install --with-deps ${{ matrix.playwright }}
- name: Run browser tests
run: vendor/bin/pest --testsuite=Browser --browser ${{ matrix.browser }}
env:
BROWSER_TIMEOUT: 45000