Skip to content

Support mll-lab/php-utils 3 #82

Support mll-lab/php-utils 3

Support mll-lab/php-utils 3 #82

Workflow file for this run

# https://help.github.com/en/categories/automating-your-workflow-with-github-actions
name: "Validate"
on:
pull_request:
push:
branches:
- master
env:
MLL_TEST_DB_HOST: 127.0.0.1
MLL_TEST_DB_PORT: 33060
jobs:
composer-validate:
name: "Validate composer dependencies"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v4
- name: "Install PHP with extensions"
uses: shivammathur/setup-php@v2
with:
coverage: none
extensions: mbstring
php-version: 8.3
- name: "Validate composer.json and composer.lock"
run: composer validate --strict
composer-normalize:
name: "Normalize composer.json"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
- name: "Install PHP with extensions"
uses: shivammathur/setup-php@v2
with:
coverage: none
extensions: mbstring
php-version: 8.3
- name: "Install locked dependencies with composer"
run: composer install --no-interaction --no-progress --no-suggest
- name: "Run localheinz/composer-normalize"
run: composer normalize
- name: "Commit fixes"
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: Normalize composer.json
php-cs-fixer:
name: "Fix PHP codestyle with php-cs-fixer"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
- name: "Install PHP with extensions"
uses: shivammathur/setup-php@v2
with:
coverage: none
extensions: mbstring
php-version: 8.3
- name: "Install dependencies with composer"
run: composer install --no-interaction --no-progress --no-suggest
- name: "Run php-cs-fixer"
run: vendor/bin/php-cs-fixer fix
- name: "Commit fixes"
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: Apply php-cs-fixer changes
static-analysis:
name: PHPStan on PHP ${{ matrix.php-version }} with Laravel ${{ matrix.laravel-version }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php-version:
- "8.1"
- "8.2"
- "8.3"
laravel-version:
- ^9.51
- ^10
- ^11
exclude:
- php-version: "8.1"
laravel-version: ^11
steps:
- uses: actions/checkout@v4
- uses: shivammathur/setup-php@v2
with:
coverage: none
extensions: mbstring
php-version: ${{ matrix.php-version }}
- name: "Remove conflicting dependencies that are not needed here"
run: composer remove --dev rector/rector --no-update
- run: composer require illuminate/contracts:${{ matrix.laravel-version }} --no-interaction --prefer-dist --no-progress
- run: vendor/bin/phpstan
tests:
name: "Tests - PHP ${{ matrix.php-version }}, Illuminate ${{ matrix.illuminate }}, ${{ matrix.dependencies }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php-version:
- "8.1"
- "8.2"
- "8.3"
dependencies:
- lowest
- highest
laravel-version:
- ^9.51
- ^10
- ^11
exclude:
- php-version: "8.1"
laravel-version: ^11
services:
mariadb:
image: mariadb:10.5
env:
MYSQL_DATABASE: test
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
ports:
- 33060:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- name: "Checkout"
uses: actions/checkout@v4
- name: "Install PHP with extensions"
uses: shivammathur/setup-php@v2
with:
coverage: none
extensions: mbstring
php-version: "${{ matrix.php-version }}"
- name: "Install Laravel"
run: composer require "illuminate/support:${{ matrix.laravel-version }}" --no-interaction --no-update
- name: "Install lowest dependencies with composer"
if: matrix.dependencies == 'lowest'
run: composer update --prefer-lowest --no-interaction --no-progress --no-suggest
- name: "Install highest dependencies with composer"
if: matrix.dependencies == 'highest'
run: composer update --no-interaction --no-progress --no-suggest
- name: "Run unit tests with phpunit/phpunit"
run: vendor/bin/phpunit
code-coverage:
name: "Code Coverage"
runs-on: ubuntu-latest
services:
mariadb:
image: mariadb:10.6
env:
MYSQL_DATABASE: test
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
ports:
- 33060:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- name: "Checkout"
uses: actions/checkout@v4
- name: "Install PHP with extensions"
uses: shivammathur/setup-php@v2
with:
coverage: pcov
extensions: mbstring
php-version: 8.3
- name: "Install dependencies with composer"
run: composer install --no-interaction --no-progress --no-suggest
- name: "Collect code coverage with Xdebug and phpunit/phpunit"
run: vendor/bin/phpunit --coverage-clover=clover.xml
- name: "Send code coverage report to codecov.io"
uses: codecov/codecov-action@v2