Skip to content

run-checks

run-checks #841

Workflow file for this run

name: run-checks
on:
workflow_run:
workflows:
- fix-styling
types:
- completed
jobs:
static-analysis:
name: static-analysis
runs-on: ${{ matrix.os }}
if: "${{ github.event.workflow_run.conclusion == 'success' }}"
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest]
php: ['8.1', '8.2']
laravel: ['11.0', ^10.0]
dependency-version: [prefer-stable]
include:
- laravel: ^10.0
testbench: ^8.1
- laravel: '11.0'
testbench: ^9.0
exclude:
- laravel: '11.0'
php: '8.1'
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo
coverage: none
- name: Setup Problem Matches
run: |
echo "::add-matcher::${{ runner.tool_cache }}/php.json"
echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
- name: Install Composer dependencies
run: |
composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update
composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction
- name: Psalm
run: ./vendor/bin/psalm --output-format=github
- name: PHPStan
run: ./vendor/bin/phpstan
- name: PHP MessDetector
run: ./vendor/bin/phpmd src github phpmd-ruleset.xml.dist
- name: PHP Code Sniffer
run: ./vendor/bin/phpcs
tests:
needs:
- static-analysis
runs-on: ubuntu-latest
if: "${{ github.event.workflow_run.conclusion == 'success' }}"
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest]
php: ['8.1', '8.2']
laravel: ['11.0', ^10.0]
dependency-version: [prefer-stable]
include:
- laravel: ^10.0
- laravel: '11.0'
exclude:
- laravel: '11.0'
php: '8.1'
name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.dependency-version }} - ${{ matrix.os }}
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo
tools: composer:v2
coverage: true
- name: Setup Problem Matches
run: |
echo "::add-matcher::${{ runner.tool_cache }}/php.json"
echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
- name: Install Composer dependencies
run: |
composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update --dev
composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction
- name: Execute Tests (Ubuntu) + Coverage
if: "matrix.os == 'ubuntu-latest'"
run: vendor/bin/pest --parallel --coverage-clover="build/clover.xml"
env:
RUNNING_IN_CI: true
- name: Upload Coverage
if: "github.ref == 'refs/heads/main' && matrix.php == '8.1' && matrix.laravel == '10.*' && matrix.os == 'ubuntu-latest' && matrix.dependency-version == 'prefer-stable'"
uses: codacy/codacy-coverage-reporter-action@v1.3
with:
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
coverage-reports: build/clover.xml
- name: Upload coverage to Codecov
if: "github.ref == 'refs/heads/main' && matrix.php == '8.1' && matrix.laravel == '10.*' && matrix.os == 'ubuntu-latest' && matrix.dependency-version == 'prefer-stable'"
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
directory: ./build/