Skip to content

Commit

Permalink
Merge pull request #2633 from woocommerce/add/phpcs-changed
Browse files Browse the repository at this point in the history
Add code style check on changed files only.
  • Loading branch information
message-dimke authored Oct 16, 2023
2 parents 053d6e2 + ec39422 commit 6c24242
Show file tree
Hide file tree
Showing 5 changed files with 389 additions and 162 deletions.
42 changes: 0 additions & 42 deletions .github/workflows/php-coding-standards.yml

This file was deleted.

47 changes: 47 additions & 0 deletions .github/workflows/php-cs-on-changes.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: PHP Coding Standards - PR Changed Files

on:
pull_request:
paths:
- "**.php"
- .github/workflows/php-cs-on-changes.yml

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
matrix:
php: [7.4, 8.2]
name: Code sniff (PHP ${{ matrix.php }}, WP Latest)
permissions:
contents: read
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Prepare PHP ${{ matrix.php }}
uses: woocommerce/grow/prepare-php@actions-v1
with:
php-version: ${{ matrix.php }}

- name: Get Changed Files
id: changed-files
uses: tj-actions/changed-files@v39
with:
files: "**/*.php"

- name: Tool versions
run: |
php --version
composer --version
vendor/bin/phpcs-changed --version
- name: Run PHPCS
if: steps.changed-files.outputs.any_changed == 'true'
run: vendor/bin/phpcs-changed --warning-severity=0 -s --git --git-base ${{ github.event.pull_request.base.sha }} ${{ steps.changed-files.outputs.all_changed_files }}
17 changes: 17 additions & 0 deletions bin/lint-branch.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/bin/bash

# Lint branch
#
# Runs phpcs-changed, comparing the current branch to its "base" or "parent" branch.
# The base branch defaults to trunk, but another branch name can be specified as an
# optional positional argument.
#
# Example:
# ./lint-branch.sh base-branch

baseBranch=${1:-"develop"}

changedFiles=$(git diff $(git merge-base HEAD $baseBranch) --relative --name-only -- '*.php')

# Only complete this if changed files are detected.
[[ -z $changedFiles ]] || composer exec phpcs-changed -- -s --git --git-base $baseBranch $changedFiles
14 changes: 8 additions & 6 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,15 @@
],
"require": {
"php": ">=7.4",
"woocommerce/action-scheduler-job-framework": "2.0.0",
"composer/installers": "~1.0"
"woocommerce/action-scheduler-job-framework": "2.0.0"
},
"require-dev": {
"dealerdirect/phpcodesniffer-composer-installer": "^v0.7",
"composer/installers": "^1.7.0",
"woocommerce/woocommerce-sniffs": "1.0.0",
"sirbrillig/phpcs-changed": "^2.11.1",
"phpunit/phpunit": "^9.6",
"wp-coding-standards/wpcs": "^2.3",
"yoast/phpunit-polyfills": "^2.0",
"wp-cli/i18n-command": "^2.2",
"woocommerce/woocommerce-sniffs": "^0.1.3"
"wp-cli/i18n-command": "^2.2"
},
"autoload": {
"psr-4": {
Expand Down Expand Up @@ -49,6 +48,9 @@
]
},
"scripts": {
"lint": "chg=$(git diff --relative --name-only -- '*.php'); [[ -z $chg ]] || phpcs-changed -s --git --git-unstaged $chg",
"lint-staged": "chg=$(git diff HEAD --relative --name-only -- '*.php'); [[ -z $chg ]] || phpcs-changed -s --git $chg",
"lint-branch": "sh ./bin/lint-branch.sh",
"test-unit": "./vendor/bin/phpunit"
}
}
Loading

0 comments on commit 6c24242

Please sign in to comment.