Skip to content

Commit

Permalink
CI - Add code sniffer (#744)
Browse files Browse the repository at this point in the history
* Add code sniffer

* Review changes

* Changes

---------

Co-authored-by: Timotei <[email protected]>
  • Loading branch information
timotei-litespeed and Tymotey committed Sep 18, 2024
1 parent 880e293 commit a78c408
Show file tree
Hide file tree
Showing 6 changed files with 258 additions and 4 deletions.
19 changes: 15 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,29 @@ on:
pull_request:

jobs:
test:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v3
- name: Cache Composer dependencies
uses: actions/cache@v3
with:
node-version: '20'
path: .cache
key: ${{ runner.os }}-${{ hashFiles('**/composer.lock') }}

- name: Initialize Node.js
uses: actions/setup-node@v3
with:
node-version: '22'
check-latest: true
cache: npm
cache-dependency-path: package-lock.json

- run: npm ci
# Start actions
- run: mkdir -p .cache
- run: composer install
- run: composer run sniff-check

- run: npm clean-install
- run: npm run format-check
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@
.env*
.vscode
node_modules
/vendor
6 changes: 6 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
**/*.min.*
**/*.ori.*
**/*.tpl.php
composer.json
composer.lock
package.json
package-lock.json
vendor
.cache
assets/js/css_async.js
assets/js/webfontloader.js
lib
Expand Down
13 changes: 13 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "litespeedtech/lscache_wp",
"require-dev": {
"squizlabs/php_codesniffer": "*",
"phpcompatibility/php-compatibility": "*"
},
"prefer-stable": true,
"scripts": {
"post-install-cmd": "phpcs --config-set installed_paths vendor/phpcompatibility/php-compatibility",
"post-update-cmd": "phpcs --config-set installed_paths vendor/phpcompatibility/php-compatibility",
"sniff-check": "phpcs"
}
}
161 changes: 161 additions & 0 deletions composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

62 changes: 62 additions & 0 deletions phpcs.xml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<?xml version="1.0"?>
<ruleset name="LiteSpeed Cache Coding Standards">
<description>Apply LiteSpeed Cache Coding Standards to all plugin files</description>

<!--
#############################################################################
COMMAND LINE ARGUMENTS
https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-Ruleset
#############################################################################
-->

<!-- Only scan PHP files -->
<arg name="extensions" value="php"/>

<!-- Cache scan results to use for unchanged files on future scans -->
<arg name="cache" value=".cache/phpcs.json"/>

<!-- Set memory limit to 512M
Ref: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#specifying-phpini-settings
-->
<ini name="memory_limit" value="512M"/>

<!-- Remove unwanted prefix from filepaths -->
<arg name="basepath" value="./"/>

<!-- Check max 20 files in parallel -->
<arg name="parallel" value="20"/>

<!-- Show sniff codes in all reports -->
<arg value="ps"/>

<!--
#############################################################################
FILE SELECTION
Set which files will be subject to the scans executed using this ruleset.
#############################################################################
-->

<file>.</file>

<!-- Exclude any wordpress folder in the current directory -->
<exclude-pattern type="relative">^wordpress/*</exclude-pattern>

<!-- Directories and third-party library exclusions -->
<exclude-pattern>/node_modules/*</exclude-pattern>
<exclude-pattern>/vendor/*</exclude-pattern>

<!--
#############################################################################
SET UP THE RULESET
#############################################################################
-->
<!-- Check PHP v7.2 and all newer versions -->
<config name="testVersion" value="7.2-"/>

<rule ref="PHPCompatibility">
<!-- Exclude false positives -->
<!-- array_key_firstFound is defined in lib/php-compatibility.func.php -->
<exclude name="PHPCompatibility.FunctionUse.NewFunctions.array_key_firstFound" />
</rule>

</ruleset>

0 comments on commit a78c408

Please sign in to comment.