name: CI on: push: branches: - main - develop pull_request: jobs: lint: name: Coding Standards runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: '8.3' tools: composer:v2 - name: Cache Composer packages uses: actions/cache@v3 with: path: ~/.composer/cache key: composer-${{ hashFiles('composer.json') }} - name: Install dependencies run: composer install --prefer-dist --no-progress --no-interaction - name: Run PHPCS run: composer cs static-analysis: name: PHPStan runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: '8.3' tools: composer:v2 - name: Cache Composer packages uses: actions/cache@v3 with: path: ~/.composer/cache key: composer-${{ hashFiles('composer.json') }} - name: Install dependencies run: composer install --prefer-dist --no-progress --no-interaction - name: Run PHPStan run: composer lint test: name: Tests (PHP ${{ matrix.php }}) runs-on: ubuntu-latest strategy: fail-fast: false matrix: php: - '8.1' - '8.2' - '8.3' steps: - uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} extensions: mbstring, intl coverage: none tools: composer:v2 - name: Cache Composer packages uses: actions/cache@v3 with: path: ~/.composer/cache key: ${{ matrix.php }}-composer-${{ hashFiles('composer.json') }} - name: Install dependencies run: composer install --prefer-dist --no-progress --no-interaction - name: Run PHPUnit run: composer test no-debug: name: No Debug Code runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Check for debug statements run: | if grep -rn --include="*.php" -E "(var_dump|var_export|print_r|error_log|dd\(|dump\()" src/; then echo "Debug code found in src/ — please remove before merging." exit 1 fi