Skip to content

Commit

Permalink
Add code sniffer
Browse files Browse the repository at this point in the history
  • Loading branch information
Tymotey committed Sep 16, 2024
1 parent 880e293 commit e7d5da3
Show file tree
Hide file tree
Showing 7 changed files with 273 additions and 7 deletions.
23 changes: 20 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,36 @@ on:
- 'v*.*'
pull_request:

# Cancels all previous workflow runs for pull requests that have not completed.
# concurrency:
# group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
# cancel-in-progress: true

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

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

# Initialize Node.js
- uses: actions/setup-node@v3
with:
node-version: '20'
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 ci
- 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
14 changes: 10 additions & 4 deletions .prettierrc
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,20 @@
"overrides": [
{
"files": ".prettierrc",
"options": { "parser": "json" }
"options": {
"parser": "json"
}
},
{
"files": "**/*.{yml,yaml}",
"options": { "tabWidth": 2 }
"options": {
"tabWidth": 2
}
}
],
"plugins": ["@prettier/plugin-php"],
"plugins": [
"@prettier/plugin-php"
],
"arrowParens": "avoid",
"braceStyle": "per-cs",
"endOfLine": "auto",
Expand All @@ -21,4 +27,4 @@
"trailingComma": "all",
"trailingCommaPHP": true,
"useTabs": true
}
}
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 --standard=./phpcs.xml.dist"
}
}
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 e7d5da3

Please sign in to comment.