name: PHP Lints

on:
  push:
  pull_request:
  schedule:
    - cron: '45 3 * * SUN'

permissions: {}

jobs:
  run:
    runs-on: ubuntu-latest
    name: "PHP Lints"
    steps:
      - name: Setup PHP
        uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # 2.35.5
        with:
          php-version: 8.3

      - name: Checkout
        uses: actions/checkout@v5
        with:
          persist-credentials: false

      - name: Install dependencies
        run: composer install --no-progress --prefer-dist --optimize-autoloader

      - name: Validate composer.json
        run: composer validate

      - name: Lint with php-cs-fixer
        run: vendor/bin/php-cs-fixer fix --verbose --diff --dry-run

      - name: Lint with phpcs
        run: vendor/bin/phpcs --standard=.phpcs-ruleset.xml src/

      - name: Lint with phpstan
        run: vendor/bin/phpstan analyze
