# https://help.github.com/en/categories/automating-your-workflow-with-github-actions name: "Build" on: pull_request: push: branches: - "1.9.x" jobs: lint: name: "Lint" runs-on: "ubuntu-latest" strategy: matrix: php-version: - "7.2" - "7.3" - "7.4" - "8.0" - "8.1" - "8.2" steps: - name: "Checkout" uses: actions/checkout@v3 - name: "Install PHP" uses: "shivammathur/setup-php@v2" with: coverage: "none" php-version: "${{ matrix.php-version }}" - name: "Validate Composer" run: "composer validate" - name: "Install dependencies" run: "composer install --no-interaction --no-progress" - name: "Downgrade PHPUnit" if: matrix.php-version == '7.2' || matrix.php-version == '7.3' run: "composer require --dev phpunit/phpunit:^7.5.20 --update-with-dependencies" - name: "Lint" run: "make lint" coding-standards: name: "Coding Standard" runs-on: "ubuntu-latest" steps: - name: "Checkout" uses: actions/checkout@v3 - name: "Install PHP" uses: "shivammathur/setup-php@v2" with: coverage: "none" php-version: "8.0" - name: "Validate Composer" run: "composer validate" - name: "Install dependencies" run: "composer install --no-interaction --no-progress" - name: "Lint" run: "make lint" - name: "Coding Standard" run: "make cs" tests: name: "Tests" runs-on: "ubuntu-latest" strategy: fail-fast: false matrix: php-version: - "7.2" - "7.3" - "7.4" - "8.0" - "8.1" - "8.2" dependencies: - "lowest" - "highest" steps: - name: "Checkout" uses: actions/checkout@v3 - name: "Install PHP" uses: "shivammathur/setup-php@v2" with: coverage: "none" php-version: "${{ matrix.php-version }}" - name: "Install lowest dependencies" if: ${{ matrix.dependencies == 'lowest' }} run: "composer update --prefer-lowest --no-interaction --no-progress" - name: "Install highest dependencies" if: ${{ matrix.dependencies == 'highest' }} run: "composer update --no-interaction --no-progress" - name: "Downgrade PHPUnit" if: matrix.php-version == '7.2' || matrix.php-version == '7.3' run: "composer require --dev phpunit/phpunit:^7.5.20 --update-with-dependencies" - name: "Tests" run: "make tests" static-analysis: name: "PHPStan" runs-on: "ubuntu-latest" strategy: fail-fast: false matrix: php-version: - "7.2" - "7.3" - "7.4" - "8.0" - "8.1" - "8.2" steps: - name: "Checkout" uses: actions/checkout@v3 - name: "Install PHP" uses: "shivammathur/setup-php@v2" with: coverage: "none" php-version: "${{ matrix.php-version }}" extensions: mbstring tools: composer:v2 - name: "Install dependencies" run: "composer update --no-interaction --no-progress" - name: "Downgrade PHPUnit" if: matrix.php-version == '7.2' || matrix.php-version == '7.3' run: "composer require --dev phpunit/phpunit:^7.5.20 --update-with-dependencies" - name: "PHPStan" run: "make phpstan"