name: Code Quality Diagnostics on: pull_request: push: branches: - master jobs: build: runs-on: ubuntu-latest name: PHP ${{ matrix.php }} strategy: fail-fast: false matrix: include: - php: 7.4 output: '-o github-action -o default' phpcq_install: 'install' - php: 8.0 output: '-o default' phpcq_install: 'update' - php: 8.1 output: '-o default' phpcq_install: 'update' - php: 8.2 output: '-o default' phpcq_install: 'update' steps: - name: Pull source uses: actions/checkout@v2 - name: Setup PHP with PECL extension uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} - name: Cache composer cache directory uses: actions/cache@v1 env: cache-name: composer-cache-dir with: path: ~/.cache/composer key: ${{ runner.os }}-${{ matrix.php }}-build-${{ env.cache-name }} - name: Cache vendor directory uses: actions/cache@v1 env: cache-name: vendor with: path: vendor key: ${{ runner.os }}-${{ matrix.php }}-build-${{ env.cache-name }}-${{ hashFiles('**/composer.lock') }} restore-keys: | ${{ runner.os }}-${{ matrix.php }}-build-${{ env.cache-name }}- - name: Cache phpcq directory uses: actions/cache@v1 env: cache-name: phpcq with: path: .phpcq key: ${{ runner.os }}-${{ matrix.php }}-build-${{ env.cache-name }}-${{ hashFiles('**/.phpcq.lock') }} restore-keys: | ${{ runner.os }}-${{ matrix.php }}-build-${{ env.cache-name }}- - name: Install composer dependencies run: composer install - name: Install phpcq toolchain run: ./vendor/bin/phpcq ${{ matrix.phpcq_install }} -v - name: Run tests run: ./vendor/bin/phpcq run -v ${{ matrix.output }} - name: Upload build directory to artifact uses: actions/upload-artifact@v2 if: ${{ success() }} || ${{ failure() }} with: name: phpcq-builds-php-${{ matrix.php }} path: .phpcq/build/