Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 0 additions & 20 deletions .github/coverage.svg

This file was deleted.

108 changes: 0 additions & 108 deletions .github/workflows/run-tests.yml

This file was deleted.

191 changes: 191 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
name: tests

on:
push:
branches:
- main
- next-gen
pull_request:

jobs:
tests:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
php: ['8.4', '8.5']
laravel: ['12.*', '13.*']
stability: [prefer-lowest, prefer-stable]
include:
- laravel: '12.*'
testbench: '10.*'
- laravel: '13.*'
testbench: '11.*'

name: PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }} - ${{ matrix.stability }}

env:
COVERAGE: ${{ matrix.php == '8.4' && matrix.laravel == '13.*' && matrix.stability == 'prefer-stable' }}

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: curl, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, iconv, intl
coverage: ${{ env.COVERAGE == 'true' && 'xdebug' || 'none' }}

- name: Get Composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT"

- name: Cache Composer downloads
uses: actions/cache@v6
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: composer-${{ runner.os }}-${{ github.job }}-${{ strategy.job-index }}-${{ hashFiles('composer.json', 'composer.lock') }}
restore-keys: |
composer-${{ runner.os }}-${{ github.job }}-${{ strategy.job-index }}-
composer-${{ runner.os }}-${{ github.job }}-

- name: Install dependencies
run: |
composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --dev --no-interaction --no-update
composer update --${{ matrix.stability }} --prefer-dist --no-interaction --no-progress

- name: Execute tests
run: vendor/bin/phpunit ${{ env.COVERAGE == 'true' && '--coverage-clover=clover.xml' || '' }}

- name: Upload coverage to Codecov
if: env.COVERAGE == 'true'
uses: codecov/codecov-action@v5
with:
files: clover.xml
fail_ci_if_error: false
token: ${{ secrets.CODECOV_TOKEN }}

pint:
runs-on: ubuntu-latest

name: Pint

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.4'
coverage: none

- name: Get Composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT"

- name: Cache Composer downloads
uses: actions/cache@v6
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: composer-${{ runner.os }}-${{ github.job }}-${{ strategy.job-index }}-${{ hashFiles('composer.json', 'composer.lock') }}
restore-keys: |
composer-${{ runner.os }}-${{ github.job }}-${{ strategy.job-index }}-
composer-${{ runner.os }}-${{ github.job }}-

- name: Install dependencies
run: composer update --prefer-dist --no-interaction --no-progress

- name: Check code style
run: vendor/bin/pint --test

- name: No javaabu/settings or javaabu/helpers in production dependencies
run: |
if composer show --tree --no-dev | grep -E 'javaabu/(settings|helpers)'; then
echo "javaabu/forms must not require javaabu/settings or javaabu/helpers (see #18)"
exit 1
fi

- name: Boost component reference is up to date
run: |
php scripts/components-reference.php
git diff --exit-code -- resources/boost

assets:
runs-on: ubuntu-latest

name: Assets

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.4'
coverage: none

- name: Get Composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT"

- name: Cache Composer downloads
uses: actions/cache@v6
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: composer-${{ runner.os }}-${{ github.job }}-${{ strategy.job-index }}-${{ hashFiles('composer.json', 'composer.lock') }}
restore-keys: |
composer-${{ runner.os }}-${{ github.job }}-${{ strategy.job-index }}-
composer-${{ runner.os }}-${{ github.job }}-

- name: Setup pnpm
uses: pnpm/action-setup@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Install Composer dependencies
run: composer update --prefer-dist --no-interaction --no-progress

- name: Lint
run: pnpm lint

- name: Check formatting
run: pnpm format:check

- name: Type check
run: pnpm typecheck

- name: Execute tests
run: pnpm test --coverage

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: coverage/clover.xml
flags: js
fail_ci_if_error: false
token: ${{ secrets.CODECOV_TOKEN }}

- name: Onu classes match @javaabu/onu
run: pnpm check

- name: Built files are up to date
run: |
pnpm icons
pnpm locales
pnpm build
git diff --exit-code -- resources/icons resources/js/locales dist

- name: Blade sources build with only the registered npm packages
run: scripts/blade-app-build.sh
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ coverage
.php-cs-fixer.cache
clover.xml
coverage.xml
node_modules
35 changes: 0 additions & 35 deletions .php_cs.dist.php

This file was deleted.

7 changes: 7 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
dist
coverage
node_modules
vendor
build
pnpm-lock.yaml
resources/js/locales
5 changes: 5 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"semi": false,
"printWidth": 120,
"tabWidth": 2
}
Loading
Loading