name: "PHP Lint" on: - push - pull_request permissions: contents: read jobs: tests: name: "Lint" runs-on: ubuntu-latest strategy: matrix: php-version: - "8.1" - "nightly" steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # 2.36.0 with: php-version: "${{ matrix.php-version }}" coverage: none - name: "Lint PHP files" run: | hasErrors=0 for f in $(find src/ tests/ -type f -name '*.php' ! -path '*/vendor/*' ! -path '*/Fixtures/*') do { error="$(php -derror_reporting=-1 -ddisplay_errors=1 -l -f $f 2>&1 1>&3 3>&-)"; } 3>&1; if [ "$error" != "" ]; then while IFS= read -r line; do echo "::error file=$f::$line"; done <<< "$error" hasErrors=1 fi done if [ $hasErrors -eq 1 ]; then exit 1 fi