Aerendir/bundle-features

View on GitHub
.github/workflows/psalm.yml

Summary

Maintainability
Test Coverage
name: PSalm

on: [ push ]

# Cancels all previous workflow runs for the same branch that have not yet completed.
concurrency:
    # The concurrency group contains the workflow name and the branch name.
    group: ${{ github.workflow }}-${{ github.ref }}
    cancel-in-progress: true

jobs:
    psalm:
        runs-on: ${{ matrix.os }}
        strategy:
            fail-fast: false
            matrix:
                os: [ ubuntu-latest ]
                php: [ '7.4', '8.0', '8.1' ]
                symfony: [ '~4.4', '~5.4', '~6.0' ]

                # This combination is not installable
                exclude:
                    - php: '7.4'
                      symfony: '~6.0'

        steps:
            -   name: Checkout
                uses: actions/checkout@v3

            -   name: Setup PHP
                uses: shivammathur/setup-php@2.21.1
                with:
                    php-version: ${{ matrix.php }}
                    coverage: none # disable xdebug, pcov
                    extensions: ast, intl

            -   name: Fix Symfony version
                run: |
                    composer req symfony/flex --no-update
                    composer config extra.symfony.require "${{ matrix.symfony }}"
                    composer config --no-plugins allow-plugins.symfony/flex true

            -   name: Remove Rector
                run: |
                    composer rem rector/rector --dev --no-update

            -   name: Remove Roave Security Advisories
                # Not compatible with symfony/framework-bundle <5.4
                run: |
                    composer rem roave/security-advisories --dev --no-update

            -   name: Install Composer deps
                uses: ramsey/composer-install@v2
                with:
                    composer-options: --no-scripts

            -   name: Update Composer deps (with Flex)
                # The second update is to make Flex able to do its job
                run: |
                    composer update --no-interaction --no-scripts

            -   name: Install Composer bin PHPUnit
                uses: ramsey/composer-install@v2
                with:
                    working-directory: './vendor-bin/phpunit'

            -   name: Remove Kernel.php
                run: |
                    rm ./src/Kernel.php

            -   name: Run PSalm
                run: |
                    ./vendor-bin/phpunit/vendor/bin/psalm