Skip to content

Commit c558283

Browse files
committed
GH Actions: fix cs annotations not showing
As things are, the CS check for the PHPCS codebase is run in the `test` workflow as an integration test and will show inline annotations about code style issues in PRs. These annotations are intended to help contributors identify issues with their PR. As the `test` workflow is run against a large range of PHP versions and OSes, this showing of the annotations was limited to PHP 8.4 + Ubuntu to prevent the contributor seeing a wall of duplicate annotations when issues would be found (one for each test build). However, the `test` workflow also uses the "fail-fast" option, cancelling the builds on the first failure, which means the PHP 8.4/Ubuntu build may have been cancelled before it was run, in which case, the inline CS annotations don't show at all. This means the current setup is counter-productive as in most cases, PR annotations will not show, even when they should be shown. This commit intends to fix this by adding a separate CS run against PHP "latest" to the `validate` workflow. This CS run in the `validate` workflow will now trigger the showing of annotations, and as this job is stand-alone, will not be subject to cancellation due to other builds failing. The code related to showing the annotations has been removed from the `test` workflow. Yes, this does mean the CS check will have a semi-duplicated run in the `test` workflow. I do not see this as a problem as: 1. The _intention_ behind that run is different ("integration test" vs "cs check"). 2. The CS run in the `test` workflow is run with different settings - `--no-cache --parallel=1` -, meaning more variations of PHPCS CLI args are tested.
1 parent 2c79c90 commit c558283

File tree

2 files changed

+27
-9
lines changed

2 files changed

+27
-9
lines changed

.github/workflows/test.yml

+1-9
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,6 @@ jobs:
195195
php-version: ${{ matrix.php }}
196196
ini-values: ${{ steps.set_ini.outputs.PHP_INI }}
197197
coverage: none
198-
tools: cs2pr
199198

200199
- name: "DEBUG: show libxml loaded version (php)"
201200
run: php -r 'echo "libxml loaded version = ", LIBXML_LOADED_VERSION, PHP_EOL;'
@@ -240,14 +239,7 @@ jobs:
240239

241240
- name: 'PHPCS: check code style without cache, no parallel'
242241
if: ${{ matrix.custom_ini == false }}
243-
id: phpcs
244-
run: >
245-
php "bin/phpcs" --no-cache --parallel=1
246-
${{ matrix.os == 'ubuntu-latest' && matrix.php == '8.4' && '--report-full --report-checkstyle=./phpcs-report.xml' || '' }}
247-
248-
- name: Show PHPCS results in PR
249-
if: ${{ always() && steps.phpcs.outcome == 'failure' && matrix.os == 'ubuntu-latest' && matrix.php == '8.4' }}
250-
run: cs2pr ./phpcs-report.xml
242+
run: php "bin/phpcs" --no-cache --parallel=1
251243

252244
- name: Download the PHPCS phar
253245
if: ${{ matrix.custom_ini == false }}

.github/workflows/validate.yml

+26
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,32 @@ concurrency:
1717
cancel-in-progress: true
1818

1919
jobs:
20+
phpcs:
21+
name: Check PHP code style
22+
runs-on: ubuntu-latest
23+
24+
# Don't run the cronjob in this workflow on forks.
25+
if: github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository_owner == 'PHPCSStandards')
26+
27+
steps:
28+
- name: Checkout code
29+
uses: actions/checkout@v4
30+
31+
- name: Install PHP
32+
uses: shivammathur/setup-php@v2
33+
with:
34+
php-version: 'latest'
35+
coverage: none
36+
tools: cs2pr
37+
38+
- name: Check PHP code style
39+
id: phpcs
40+
run: php "bin/phpcs" --report-full --report-checkstyle=./phpcs-report.xml
41+
42+
- name: Show PHPCS results in PR
43+
if: ${{ always() && steps.phpcs.outcome == 'failure' }}
44+
run: cs2pr ./phpcs-report.xml
45+
2046
checkxml:
2147
name: Check XML files
2248
runs-on: ubuntu-latest

0 commit comments

Comments
 (0)