Skip to content

Commit

Permalink
CS/check thresholds: require exact match for thresholds
Browse files Browse the repository at this point in the history
This changes the implementation of the coding standards threshold check to require that both the `YOASTCS_THRESHOLD_ERRORS` environment variable, as well as the `YOASTCS_THRESHOLD_WARNINGS` environment variable match the current status exactly.

This prevents PR A fixing some issues and forgetting to update the threshold, which then would allow PR B to introduce new issues.
  • Loading branch information
jrfnl committed Apr 6, 2024
1 parent 4b3ff4f commit 0ab77f5
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 3 deletions.
12 changes: 10 additions & 2 deletions .github/workflows/cs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,15 +109,23 @@ jobs:
custom-cache-suffix: $(date -u "+%Y-%m")

# Check the codestyle of the files against a threshold of expected errors and warnings.
# Keep track of the exit code as it determines whether to run the branch check or not.
# Exit code 128 means the thresholds needs to be lowered. Other exit codes imply CS errors.
- name: Check PHP code style against the thresholds
run: composer check-cs-thresholds
id: thresholds
run: |
set +e
composer check-cs-thresholds
exitcode="$?"
echo "EXITCODE=$exitcode" >> $GITHUB_OUTPUT
exit "$exitcode"
# Check the codestyle only of the files which were changed in the current branch.
# This step will only be executed if the threshold check exited with a failure status.
# The results of this CS check will be shown inline in the PR via the CS2PR tool.
# @link https://github.com/staabm/annotate-pull-request-from-checkstyle/
- name: Check PHP code style for the changes made in the branch only
if: ${{ failure() }}
if: ${{ failure() && steps.thresholds.outputs.EXITCODE != 128 }}
id: phpcs
run: composer check-branch-cs -- ${{ steps.base_branch.outputs.REF }}

Expand Down
15 changes: 14 additions & 1 deletion config/composer/actions.php
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,11 @@ public static function check_cs_thresholds() {
$above_threshold = false;
}

$threshold_exact = true;
if ( \strpos( $phpcs_output, ' than the threshold, great job!' ) !== false ) {
$threshold_exact = false;
}

/*
* Don't run the branch check in CI/GH Actions as it prevents the errors from being shown inline.
* The GH Actions script will run this via a separate script step.
Expand All @@ -167,7 +172,15 @@ public static function check_cs_thresholds() {
@\passthru( 'composer check-branch-cs' );
}

exit( ( $above_threshold === true || $return > 2 ) ? $return : 0 );
$exit_code = 0;
if ( $above_threshold === true || $return > 2 ) {
$exit_code = $return;
}
elseif ( $threshold_exact === false ) {
$exit_code = 128;
}

exit( $exit_code );
}

/**
Expand Down

0 comments on commit 0ab77f5

Please sign in to comment.