diff options
author | Michael Große <mic.grosse@googlemail.com> | 2019-12-28 13:49:11 +0100 |
---|---|---|
committer | Michael Große <mic.grosse@googlemail.com> | 2020-01-06 19:48:19 +0100 |
commit | e3cafdc28a52ba17ed1f5ec78020911c95292ca0 (patch) | |
tree | b9ac3e75beb1d0a2e315bcbb691eadd8bd38e8a3 | |
parent | 9ec1015a9efcdac85c2412ac998c4191fd6d5bbd (diff) | |
download | dokuwiki-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.yml | 22 | ||||
-rw-r--r-- | _test/phpcs.xml | 62 |
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 --> |