Skip to content

Update doc

Update doc #1

name: PHP - Code quality
on:
pull_request:
env:
PHP_VERSION: 8.3.0
jobs:
cache_dependencies:
name: Fetch composer dependencies
runs-on: ubuntu-latest
steps:
- name: Fetch latest changes
uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # renovate: tag=v3.0.0
- name: Prepare/restore dependencies cache
uses: actions/cache@937d24475381cd9c75ae6db12cb4e79714b926ed # renovate: tag=v2.1.7
with:
# NOTE: the allows to reuse it if the composer.json has not changed
key: composer/${{ runner.os }}/${{ hashFiles('**/composer.json') }}
path: |
composer.lock
vendor/
- name: Install/update dependencies
uses: php-actions/composer@d936bcb900310224b9089aff3337f2221a8df9a0 # renovate: tag=v6.0.0
with:
php_version: ${{ env.PHP_VERSION }}
args: --ignore-platform-reqs
php_analysis:
name: Code quality checks
runs-on: ubuntu-latest
needs: [cache_dependencies]
strategy:
fail-fast: false
matrix:
tool: [phpcs, phpmd, phpstan, phpunit]
steps:
- name: Setup PHP ${{ env.PHP_VERSION }} environment
uses: shivammathur/setup-php@v2
with:
php-version: ${{ env.PHP_VERSION }}
- name: Fetch lastest changes
uses: actions/checkout@v4
- name: Restore dependencies cache
uses: actions/cache@v4
with:
key: composer/${{ runner.os }}/${{ hashFiles('**/composer.json') }}
path: |
composer.lock
vendor/
- name: Run ${{ matrix.tool }}
run: make ${{ matrix.tool }}-ci
- name: Upload ${{ matrix.tool }} reports
uses: actions/upload-artifact@v4
if: always()
with:
name: ${{ matrix.tool }}-reports
path: build/**/*.junit.xml
retention-days: 1
php_report:
name: Report PHP code quality
runs-on: ubuntu-latest
needs: [php_analysis]
if: always()
steps:
- name: Create build/ directory
run: mkdir -p build
# NOTE: only phpunit, phpcs generate reports
- name: Download phpunit reports
uses: actions/download-artifact@v4
with:
name: phpunit-reports
path: build/
- name: Download phpcs reports
uses: actions/download-artifact@v4
with:
name: phpcs-reports
path: build/
- name: Report analisys results
uses: mikepenz/action-junit-report@v4
with:
check_name: See PHP code quality reports
report_paths: build/reports/*.xml