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