98 lines
2.2 KiB
YAML
98 lines
2.2 KiB
YAML
# https://help.github.com/en/categories/automating-your-workflow-with-github-actions
|
|
|
|
on:
|
|
- pull_request
|
|
- push
|
|
|
|
name: CI
|
|
|
|
env:
|
|
COMPOSER_ROOT_VERSION: 7.0.x-dev
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
coding-guidelines:
|
|
name: Coding Guidelines
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: 8.3
|
|
coverage: none
|
|
|
|
- name: Run PHP-CS-Fixer
|
|
run: ./tools/php-cs-fixer fix --dry-run --show-progress=dots --using-cache=no --verbose
|
|
|
|
static-analysis:
|
|
name: Static Analysis
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: 8.3
|
|
coverage: none
|
|
|
|
- name: Install dependencies with Composer
|
|
run: ./tools/composer update --no-interaction --no-ansi --no-progress
|
|
|
|
- name: Run PHPStan
|
|
run: ./tools/phpstan analyse --no-progress --error-format=github
|
|
|
|
tests:
|
|
name: Tests
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
php-version:
|
|
- 8.3
|
|
- 8.4
|
|
- 8.5
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install PHP with extensions
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php-version }}
|
|
coverage: xdebug
|
|
|
|
- name: Install dependencies with Composer
|
|
run: ./tools/composer update --no-ansi --no-interaction --no-progress
|
|
|
|
- name: Run tests with PHPUnit
|
|
run: ./vendor/bin/phpunit --log-junit test-results.xml --coverage-clover=code-coverage.xml
|
|
|
|
- name: Upload test results to Codecov.io
|
|
if: ${{ !cancelled() }}
|
|
uses: codecov/test-results-action@v1
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
disable_search: true
|
|
files: ./test-results.xml
|
|
|
|
- name: Upload code coverage data to Codecov.io
|
|
uses: codecov/codecov-action@v4
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
disable_search: true
|
|
files: ./code-coverage.xml
|