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>
100 lines
2.7 KiB
YAML
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
|
|
|