1 name: Lint and analyse php files
6 types: [opened, synchronize, reopened]
16 runs-on: ubuntu-latest
22 uses: actions/checkout@v4
24 - name: Set up PHP ${{ matrix.php-version }}
25 uses: shivammathur/setup-php@v2
27 php-version: ${{ matrix.php-version }}
29 - name: Validate composer.json and composer.lock
30 run: composer validate --strict
32 - name: Install Composer dependencies
33 # Allow the previous check to fail but not abort
35 uses: ramsey/composer-install@v2
37 # Ignore zip for php-webdriver/webdriver
38 composer-options: "--ignore-platform-req=ext-zip"
40 - name: Cache coding-standard
41 # Allow the previous check to fail but not abort
43 uses: actions/cache@v3
48 - name: Lint PHP files
49 # Allow the previous check to fail but not abort
51 run: ./test/ci-phplint
53 - name: Check coding-standard
54 # Allow the previous check to fail but not abort
58 - name: Check Twig templates
59 # Allow the previous check to fail but not abort
61 run: composer run twig-lint
64 runs-on: ubuntu-latest
70 uses: actions/checkout@v4
72 - name: Set up PHP ${{ matrix.php-version }}
73 uses: shivammathur/setup-php@v2
75 php-version: ${{ matrix.php-version }}
76 extensions: mbstring, iconv, mysqli, zip, gd, bz2
78 - name: Install Composer dependencies
79 uses: ramsey/composer-install@v2
81 - name: Analyse files with PHPStan
82 run: composer phpstan -- --memory-limit 2G
84 - name: Analyse files with Psalm
85 # Allow the previous check to fail but not abort
87 run: composer psalm -- --shepherd