Update release date #4
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 | |
on: | |
# Run on relevant pushes to select branches and on all relevant pull requests. | |
push: | |
branches: | |
- main | |
- trunk | |
- "release/**" | |
- "hotfix/[0-9]+.[0-9]+*" | |
- "feature/**" | |
paths: | |
- '**.php' | |
- 'composer.json' | |
- 'composer.lock' | |
- '.github/workflows/lint.yml' | |
pull_request: | |
paths: | |
- '**.php' | |
- 'composer.json' | |
- 'composer.lock' | |
- '.github/workflows/lint.yml' | |
# Allow manually triggering the workflow. | |
workflow_dispatch: | |
# 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: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
# Lint against the highest/lowest supported versions of each PHP major. | |
# And also do a run against "nightly" (the current dev version of PHP). | |
php_version: ["7.2", "7.4", "8.0", "8.2", "8.3"] | |
name: "Lint: PHP ${{ matrix.php_version }}" | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
# For the purpose of linting the code, we need the `vendor-prefixed` directory to | |
# be created as the prefixed code should be linted to ensure there are no parse errors | |
# in the generated code against any of the supported PHP versions. | |
# The prefix-dependencies task makes use of reflection-based PHP code that only works on PHP > 7.2. | |
- name: Install PHP 7.x for generating the vendor_prefixed directory | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 7.2 | |
coverage: none | |
- name: Install Composer dependencies and generate vendor_prefixed directory | |
uses: ramsey/composer-install@v3 | |
with: | |
# Bust the cache at least once a week - output format: YYYY-MM-DD. | |
custom-cache-suffix: $(/bin/date -u --date='last Mon' "+%F") | |
# Remove packages which are not PHP cross-version compatible and only used for the prefixing. | |
# - humbug/php-scoper is only needed to actually do the prefixing, so won't be shipped anyway. | |
- name: Delete dev dependencies which are not cross-version compatible | |
run: composer remove --dev --no-scripts humbug/php-scoper | |
- name: Install PHP for the actual linting | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php_version }} | |
ini-values: zend.assertions=1, error_reporting=-1, display_errors=On | |
coverage: none | |
tools: cs2pr | |
- name: Lint against parse errors | |
run: composer lint -- --checkstyle | cs2pr |