ci: create an initial linting CI #9
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Lint and analyse php files | |
# If a pull-request is pushed then cancel all previously running jobs related | |
# to that pull-request | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} | |
cancel-in-progress: true | |
on: | |
# push: | |
pull_request: | |
types: [opened, synchronize, reopened] | |
branches: | |
- develop | |
permissions: | |
contents: read | |
jobs: | |
lint-php-files: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
php-version: ["8.1"] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up PHP ${{ matrix.php-version }} | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
- name: Validate composer.json and composer.lock | |
run: composer validate --strict | |
- name: Install Composer dependencies | |
# Allow the previous check to fail but not abort | |
if: always() | |
uses: ramsey/composer-install@v2 | |
with: | |
# Ignore zip for php-webdriver/webdriver | |
composer-options: "--ignore-platform-req=ext-zip" | |
# - name: Cache coding-standard | |
# # Allow the previous check to fail but not abort | |
# if: always() | |
# uses: actions/cache@v4 | |
# with: | |
# path: .phpcs-cache | |
# key: phpcs-cache | |
- name: Lint PHP files | |
# Allow the previous check to fail but not abort | |
if: always() | |
run: ./tests/ci-phplint | |
- name: Check coding-standard | |
# Allow the previous check to fail but not abort | |
if: always() | |
run: composer phpcs | |
analyse-php: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
php-version: ["8.1"] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up PHP ${{ matrix.php-version }} | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
extensions: mbstring, iconv, mysqli, zip, gd, bz2 | |
- name: Install Composer dependencies | |
uses: ramsey/composer-install@v2 | |
- name: Analyse files with PHPStan | |
run: composer phpstan -- --memory-limit 2G | |
- name: Analyse files with Psalm | |
# Allow the previous check to fail but not abort | |
if: always() | |
run: composer psalm -- --shepherd |