83 lines
2.5 KiB
YAML
83 lines
2.5 KiB
YAML
name: Static analysis
|
|
|
|
on:
|
|
pull_request:
|
|
types: [opened, synchronize, reopened]
|
|
|
|
workflow_run:
|
|
workflows: ['Compress images']
|
|
types: [completed]
|
|
|
|
env:
|
|
php-version: '8.1'
|
|
|
|
concurrency:
|
|
group: Static analysis ${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
psalm:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup PHP ${{ env.php-version }}
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ env.php-version }}
|
|
extensions: redis
|
|
coverage: none
|
|
|
|
- name: Get Composer Cache Directory
|
|
id: composer-cache
|
|
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
|
|
- name: Cache composer files
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: ${{ steps.composer-cache.outputs.dir }}
|
|
key: ${{ runner.os }}-composer-${{ env.php-version }}-${{ hashFiles('**/composer.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-composer-${{ env.php-version }}-${{ hashFiles('**/composer.lock') }}
|
|
${{ runner.os }}-composer-${{ env.php-version }}
|
|
${{ runner.os }}-composer-
|
|
|
|
- name: Install dependencies
|
|
run: composer install --no-progress --no-interaction --prefer-dist --optimize-autoloader
|
|
|
|
- name: Run psalm
|
|
run: vendor/bin/psalm --output-format=github
|
|
|
|
|
|
phpstan:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup PHP ${{ env.php-version }}
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ env.php-version }}
|
|
extensions: redis
|
|
coverage: none
|
|
|
|
- name: Get Composer Cache Directory
|
|
id: composer-cache
|
|
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
|
|
- name: Cache composer files
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: ${{ steps.composer-cache.outputs.dir }}
|
|
key: ${{ runner.os }}-composer-${{ env.php-version }}-${{ hashFiles('**/composer.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-composer-${{ env.php-version }}-${{ hashFiles('**/composer.lock') }}
|
|
${{ runner.os }}-composer-${{ env.php-version }}
|
|
${{ runner.os }}-composer-
|
|
|
|
- name: Install dependencies
|
|
run: composer install --no-progress --no-interaction --prefer-dist --optimize-autoloader
|
|
|
|
- name: Run phpstan
|
|
run: vendor/bin/phpstan analyse
|