108 lines
3.0 KiB
YAML
108 lines
3.0 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
static-analysis:
|
|
name: Static analysis
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: 8.2
|
|
tools: phpstan
|
|
coverage: none
|
|
|
|
- name: PHPStan
|
|
run: phpstan
|
|
|
|
|
|
code-style:
|
|
name: Code style
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: 8.4
|
|
## Temporary version pin as 1.21.0 is broken
|
|
tools: pint:1.20.0
|
|
coverage: none
|
|
|
|
- name: Pint
|
|
run: pint --test
|
|
|
|
|
|
tests:
|
|
name: PHP ${{ matrix.php }} Laravel ${{ matrix.laravel }} Prefer ${{ matrix.prefer }}
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
php: [8.2, 8.3, 8.4, 8.5]
|
|
laravel: ['^11.0', '^12.0', '12.x-dev']
|
|
prefer: [prefer-lowest, prefer-stable]
|
|
|
|
steps:
|
|
- name: checkout code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Get composer cache directory
|
|
id: composer-cache
|
|
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Cache dependencies
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: ${{ steps.composer-cache.outputs.dir }}
|
|
key: ${{ runner.os }}-php-${{ matrix.php }}-laravel-${{ matrix.laravel }}-prefer-${{ matrix.prefer }}-composer-${{ hashFiles('**/composer.json') }}
|
|
restore-keys: ${{ runner.os }}-php-${{ matrix.php }}-laravel-{{ matrix.laravel }}-prefer-${{ matrix.prefer}}-composer-
|
|
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php }}
|
|
coverage: none
|
|
|
|
- name: Require Laravel version
|
|
run: |
|
|
composer require --no-update \
|
|
illuminate/collections:${{ matrix.laravel }} \
|
|
illuminate/database:${{ matrix.laravel }} \
|
|
illuminate/http:${{ matrix.laravel }} \
|
|
illuminate/support:${{ matrix.laravel }}
|
|
composer require --no-update --dev \
|
|
laravel/framework:${{ matrix.laravel }}
|
|
|
|
- name: Support prefer-lowest in PHP 8.2 and Laravel 10
|
|
if: ${{ matrix.php == 8.2 && matrix.laravel == '^11.0' && matrix.prefer == 'prefer-lowest' }}
|
|
run: composer require --no-update nesbot/carbon:^2.62.1
|
|
|
|
- name: Support prefer-lowest in PHP 8.3
|
|
if: ${{ matrix.php == 8.3 && matrix.prefer == 'prefer-lowest' }}
|
|
run: composer require --no-update nesbot/carbon:^3.0
|
|
|
|
- name: Support prefer-lowest in PHP 8.4
|
|
if: ${{ matrix.php == 8.4 && matrix.prefer == 'prefer-lowest' }}
|
|
run: composer require --no-update nesbot/carbon:^3.0
|
|
|
|
- name: Install dependencies
|
|
run: composer update --${{ matrix.prefer }}
|
|
|
|
- name: Run tests
|
|
run: ./vendor/bin/phpunit
|