diff --git a/.github/workflows/psalm.yml b/.github/workflows/psalm.yml new file mode 100644 index 00000000..d2b754ee --- /dev/null +++ b/.github/workflows/psalm.yml @@ -0,0 +1,65 @@ +name: Psalm + +on: + pull_request: + paths-ignore: + - 'docs/**' + - 'bin/**' + - 'resources/**' + - 'README.md' + - 'CHANGELOG.md' + - '.gitignore' + - '.gitattributes' + - '.editorconfig' + - 'psalm.xml' + + push: + paths-ignore: + - 'docs/**' + - 'bin/**' + - 'resources/**' + - 'README.md' + - 'CHANGELOG.md' + - '.gitignore' + - '.gitattributes' + - '.editorconfig' + - 'psalm.xml' + +jobs: + psalm: + name: Psalm Validation (PHP ${{ matrix.php }}, OS ${{ matrix.os }}) + runs-on: ${{ matrix.os }} + continue-on-error: true + strategy: + fail-fast: false + matrix: + php: [8.2] + os: [ubuntu-latest] + steps: + - name: Set up PHP ${{ matrix.php }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + extensions: dom + + - name: Check Out Code + uses: actions/checkout@v4 + with: + fetch-depth: 1 + + - name: Get Composer Cache Directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache Dependencies + uses: actions/cache@v3 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: php-${{ matrix.php }}-${{ runner.os }}-composer- + + - name: Install Composer Dependencies + run: composer install --prefer-dist --no-interaction + + - name: Run Tests + run: vendor/bin/psalm