aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMichael Große <mic.grosse@googlemail.com>2019-12-28 13:49:11 +0100
committerMichael Große <mic.grosse@googlemail.com>2020-01-06 19:48:19 +0100
commite3cafdc28a52ba17ed1f5ec78020911c95292ca0 (patch)
treeb9ac3e75beb1d0a2e315bcbb691eadd8bd38e8a3
parent9ec1015a9efcdac85c2412ac998c4191fd6d5bbd (diff)
downloaddokuwiki-e3cafdc28a52ba17ed1f5ec78020911c95292ca0.tar.gz
dokuwiki-e3cafdc28a52ba17ed1f5ec78020911c95292ca0.zip
Check our code style for every PR
This excludes the currently failing checks with automatic fixes, as they are out of scope of this commit. The current goal is automatically reject pull requests that don't me the standards that the rest of our code base already follows.
-rw-r--r--.github/workflows/phpCS.yml22
-rw-r--r--_test/phpcs.xml62
2 files changed, 84 insertions, 0 deletions
diff --git a/.github/workflows/phpCS.yml b/.github/workflows/phpCS.yml
new file mode 100644
index 000000000..2699db6cd
--- /dev/null
+++ b/.github/workflows/phpCS.yml
@@ -0,0 +1,22 @@
+name: PHP Code Style
+
+on: [push]
+
+jobs:
+ phpcs:
+ name: PHP CodeSniffer
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v1
+
+ - name: Setup PHP
+ uses: shivammathur/setup-php@7b8bf7af6a42e028cbcccf623bb8499b4d6edf02
+ with:
+ php-version: '7.4'
+ coverage: none
+
+ - name: Download PHPCS
+ run: wget https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
+
+ - name: run PHP codesniffer
+ run: php phpcs.phar -v --standard=_test/phpcs.xml
diff --git a/_test/phpcs.xml b/_test/phpcs.xml
index 4f38195a3..b24e9f5a0 100644
--- a/_test/phpcs.xml
+++ b/_test/phpcs.xml
@@ -41,6 +41,68 @@
<!-- we have lots of legacy classes without name spaces -->
<exclude name="PSR1.Classes.ClassDeclaration.MissingNamespace"/>
+
+ <!-- Rules with automatic fixes that we want to adhere to, but currently don't -->
+ <exclude name="Generic.Formatting.DisallowMultipleStatements.SameLine"/>
+ <exclude name="Generic.Functions.FunctionCallArgumentSpacing.NoSpaceAfterComma"/>
+ <exclude name="Generic.Functions.FunctionCallArgumentSpacing.SpaceBeforeComma"/>
+ <exclude name="Generic.Functions.FunctionCallArgumentSpacing.TooMuchSpaceAfterComma"/>
+ <exclude name="Generic.PHP.LowerCaseKeyword.Found"/>
+ <exclude name="Generic.PHP.LowerCaseConstant.Found"/>
+ <exclude name="Generic.WhiteSpace.ScopeIndent.IncorrectExact"/>
+ <exclude name="Generic.WhiteSpace.ScopeIndent.Incorrect"/>
+ <exclude name="Generic.WhiteSpace.IncrementDecrementSpacing.SpaceAfterDecrement"/>
+ <exclude name="Generic.WhiteSpace.IncrementDecrementSpacing.SpaceAfterIncrement"/>
+
+ <exclude name="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseParenthesis"/>
+ <exclude name="Squiz.ControlStructures.ControlSignature.SpaceAfterKeyword"/>
+ <exclude name="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseBrace"/>
+ <exclude name="Squiz.ControlStructures.ControlSignature.NewlineAfterOpenBrace"/>
+ <exclude name="Squiz.ControlStructures.ForEachLoopDeclaration.NoSpaceBeforeArrow"/>
+ <exclude name="Squiz.ControlStructures.ForEachLoopDeclaration.NoSpaceAfterArrow"/>
+ <exclude name="Squiz.ControlStructures.ForEachLoopDeclaration.SpacingBeforeAs"/>
+ <exclude name="Squiz.ControlStructures.ForLoopDeclaration.SpacingAfterSecond"/>
+ <exclude name="Squiz.ControlStructures.ForLoopDeclaration.NoSpaceAfterSecond"/>
+ <exclude name="Squiz.ControlStructures.ForLoopDeclaration.NoSpaceAfterFirst"/>
+ <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.NoSpaceBeforeArg"/>
+ <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpaceAfterEquals"/>
+ <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpacingAfterReference"/>
+ <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpacingBeforeClose"/>
+ <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpaceBeforeEquals"/>
+ <exclude name="Squiz.Functions.MultiLineFunctionDeclaration.BraceOnSameLine"/>
+ <exclude name="Squiz.Functions.MultiLineFunctionDeclaration.NewlineBeforeOpenBrace"/>
+ <exclude name="Squiz.Functions.MultiLineFunctionDeclaration.CloseBracketLine"/>
+ <exclude name="Squiz.WhiteSpace.ControlStructureSpacing.SpacingAfterOpen"/>
+ <exclude name="Squiz.WhiteSpace.ControlStructureSpacing.SpacingBeforeClose"/>
+ <exclude name="Squiz.WhiteSpace.ScopeClosingBrace.ContentBefore"/>
+ <exclude name="Squiz.WhiteSpace.ScopeClosingBrace.Indent"/>
+ <exclude name="Squiz.WhiteSpace.SuperfluousWhitespace.EndLine"/>
+
+ <exclude name="PSR2.Classes.ClassDeclaration.CloseBraceAfterBody"/>
+ <exclude name="PSR2.Classes.ClassDeclaration.OpenBraceNewLine"/>
+ <exclude name="PSR2.Classes.PropertyDeclaration.StaticBeforeVisibility"/>
+ <exclude name="PSR2.ControlStructures.ControlStructureSpacing.SpacingAfterOpenBrace"/>
+ <exclude name="PSR2.ControlStructures.ControlStructureSpacing.SpaceBeforeCloseBrace"/>
+ <exclude name="PSR2.ControlStructures.ElseIfDeclaration.NotAllowed"/>
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.BreakIndent"/>
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.BreakNotNewLine"/>
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.BodyOnNextLineCASE"/>
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.SpaceBeforeColonDEFAULT"/>
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.SpaceBeforeColonCASE"/>
+ <exclude name="PSR2.Files.EndFileNewline.TooMany"/>
+ <exclude name="PSR2.Files.EndFileNewline.NoneFound"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.Indent"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.EmptyLine"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.ContentAfterOpenBracket"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.SpaceBeforeOpenBracket"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.CloseBracketLine"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.SpaceBeforeCloseBracket"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.SpaceAfterOpenBracket"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.MultipleArguments"/>
+ <exclude name="PSR2.Methods.FunctionClosingBrace.SpacingBeforeClose"/>
+ <exclude name="PSR2.Methods.MethodDeclaration.StaticBeforeVisibility"/>
+ <exclude name="PSR2.Namespaces.NamespaceDeclaration.BlankLineAfter"/>
+ <exclude name="PSR2.Namespaces.UseDeclaration.SpaceAfterLastUse"/>
</rule>
<!-- disable some rules for certain paths, for legacy support -->