name: Code Quality Checks on: pull_request: push: branches: - main - master # Cancels all previous workflow runs for the same branch that have not yet completed. concurrency: # The concurrency group contains the workflow name and the branch name. group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: lint: #----------------------------------------------------------------------- name: Lint PHP files runs-on: ubuntu-latest steps: - name: Check out source code uses: actions/checkout@v2 - name: Check existence of composer.json file id: check_composer_file uses: andstor/file-existence-action@v1 with: files: "composer.json" - name: Set up PHP environment if: steps.check_composer_file.outputs.files_exists == 'true' uses: shivammathur/setup-php@v2 with: php-version: '7.4' tools: cs2pr env: COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Install Composer dependencies & cache dependencies if: steps.check_composer_file.outputs.files_exists == 'true' uses: "ramsey/composer-install@v2" env: COMPOSER_ROOT_VERSION: dev-${{ github.event.repository.default_branch }} - name: Check existence of vendor/bin/parallel-lint file id: check_linter_file uses: andstor/file-existence-action@v1 with: files: "vendor/bin/parallel-lint" - name: Run Linter if: steps.check_linter_file.outputs.files_exists == 'true' run: vendor/bin/parallel-lint -j 10 . --exclude vendor --checkstyle | cs2pr phpcs: #---------------------------------------------------------------------- name: PHPCS runs-on: ubuntu-latest steps: - name: Check out source code uses: actions/checkout@v2 - name: Check existence of composer.json & phpcs.xml.dist files id: check_files uses: andstor/file-existence-action@v1 with: files: "composer.json, phpcs.xml.dist" - name: Set up PHP environment if: steps.check_files.outputs.files_exists == 'true' uses: shivammathur/setup-php@v2 with: php-version: '7.4' tools: cs2pr env: COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Install Composer dependencies & cache dependencies if: steps.check_files.outputs.files_exists == 'true' uses: "ramsey/composer-install@v2" env: COMPOSER_ROOT_VERSION: dev-${{ github.event.repository.default_branch }} - name: Check existence of vendor/bin/phpcs file id: check_phpcs_binary_file uses: andstor/file-existence-action@v1 with: files: "vendor/bin/phpcs" - name: Run PHPCS if: steps.check_phpcs_binary_file.outputs.files_exists == 'true' run: vendor/bin/phpcs -q --report=checkstyle | cs2pr