name: Static Analysis on: push: branches: [ main, develop ] pull_request: branches: [ main, develop ] jobs: phpstan: name: PHPStan runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: 8.3 extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite coverage: none - name: Install dependencies run: composer install --prefer-dist --no-interaction --no-progress - name: Run PHPStan run: vendor/bin/phpstan analyse --memory-limit=2G psalm: name: Psalm runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: 8.3 extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite coverage: none - name: Install dependencies run: composer install --prefer-dist --no-interaction --no-progress - name: Run Psalm run: vendor/bin/psalm --show-info=false security: name: Security Audit runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: 8.3 extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite coverage: none - name: Install dependencies run: composer install --prefer-dist --no-interaction --no-progress - name: Security audit run: composer audit lint: name: PHP Syntax Check runs-on: ubuntu-latest strategy: matrix: php: ['8.2', '8.3'] steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite coverage: none - name: Check PHP syntax run: find . -name "*.php" -not -path "./vendor/*" -print0 | xargs -0 -n1 php -l