-
Notifications
You must be signed in to change notification settings - Fork 82
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: New checkstyle rules and GitHub action (#107)
* New checkstyle rules and GitHub action GitHub Actions: Add gitlint to check commit message format Signed-off-by: Joel Hanson <[email protected]>
- Loading branch information
1 parent
7cc087c
commit 0ef5745
Showing
22 changed files
with
913 additions
and
545 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,143 @@ | ||
<?xml version="1.0"?> | ||
<!DOCTYPE module PUBLIC | ||
"-//Puppy Crawl//DTD Check Configuration 1.3//EN" | ||
"http://checkstyle.sourceforge.net/dtds/configuration_1_3.dtd"> | ||
|
||
<module name="Checker"> | ||
|
||
<property name="localeLanguage" value="en"/> | ||
|
||
<module name="FileTabCharacter"/> | ||
|
||
<module name="SuppressWarningsFilter"/> | ||
|
||
<module name="TreeWalker"> | ||
|
||
<!-- code cleanup --> | ||
<module name="UnusedImports"> | ||
<property name="processJavadoc" value="true"/> | ||
</module> | ||
<module name="RedundantImport"/> | ||
<module name="IllegalImport"/> | ||
<module name="EqualsHashCode"/> | ||
<module name="SimplifyBooleanExpression"/> | ||
<module name="OneStatementPerLine"/> | ||
<module name="UnnecessaryParentheses"/> | ||
<module name="SimplifyBooleanReturn"/> | ||
|
||
<!-- style --> | ||
<module name="DefaultComesLast"/> | ||
<module name="EmptyStatement"/> | ||
<module name="ArrayTypeStyle"/> | ||
<module name="UpperEll"/> | ||
<module name="LeftCurly"/> | ||
<module name="RightCurly"/> | ||
<module name="EmptyStatement"/> | ||
<module name="ConstantName"> | ||
<property name="format" value="(^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$)|(^log$)"/> | ||
</module> | ||
<module name="LocalVariableName"/> | ||
<module name="LocalFinalVariableName"/> | ||
<module name="MemberName"/> | ||
<module name="ClassTypeParameterName"> | ||
<property name="format" value="^[A-Z][a-zA-Z0-9]*$$"/> | ||
</module> | ||
<module name="MethodTypeParameterName"> | ||
<property name="format" value="^[A-Z][a-zA-Z0-9]*$$"/> | ||
</module> | ||
<module name="InterfaceTypeParameterName"> | ||
<property name="format" value="^[A-Z][a-zA-Z0-9]*$$"/> | ||
</module> | ||
<module name="PackageName"/> | ||
<module name="ParameterName"/> | ||
<module name="StaticVariableName"/> | ||
<module name="TypeName"/> | ||
<module name="AvoidStarImport"/> | ||
|
||
<!-- dependencies --> | ||
<!--<module name="ImportControl"> | ||
<property name="file" value="${importControlFile}"/> | ||
</module>--> | ||
|
||
<!-- whitespace --> | ||
<module name="GenericWhitespace"/> | ||
<module name="NoWhitespaceBefore"/> | ||
<module name="WhitespaceAfter"/> | ||
<module name="NoWhitespaceAfter"/> | ||
<module name="WhitespaceAround"> | ||
<property name="allowEmptyConstructors" value="true"/> | ||
<property name="allowEmptyMethods" value="true"/> | ||
</module> | ||
<module name="Indentation"/> | ||
<module name="MethodParamPad"/> | ||
<module name="ParenPad"/> | ||
<module name="TypecastParenPad"/> | ||
|
||
<!-- locale-sensitive methods should specify locale --> | ||
<module name="Regexp"> | ||
<property name="format" value="\.to(Lower|Upper)Case\(\)"/> | ||
<property name="illegalPattern" value="true"/> | ||
<property name="ignoreComments" value="true"/> | ||
</module> | ||
|
||
<!-- code quality --> | ||
<module name="MethodLength"/> | ||
<module name="ParameterNumber"> | ||
<!-- default is 8 --> | ||
<property name="max" value="13"/> | ||
</module> | ||
<module name="ClassDataAbstractionCoupling"> | ||
<!-- default is 7 --> | ||
<property name="max" value="20"/> | ||
</module> | ||
<module name="BooleanExpressionComplexity"> | ||
<!-- default is 3 --> | ||
<property name="max" value="5"/> | ||
</module> | ||
|
||
<module name="ClassFanOutComplexity"> | ||
<!-- default is 20 --> | ||
<property name="max" value="44"/> | ||
</module> | ||
<module name="CyclomaticComplexity"> | ||
<!-- default is 10--> | ||
<property name="max" value="19"/> | ||
</module> | ||
<module name="JavaNCSS"> | ||
<!-- default is 50 --> | ||
<property name="methodMaximum" value="100"/> | ||
</module> | ||
<module name="NPathComplexity"> | ||
<!-- default is 200 --> | ||
<property name="max" value="9111"/> | ||
</module> | ||
|
||
<module name="IllegalToken"> | ||
<property name="tokens" value="LITERAL_ASSERT"/> | ||
</module> | ||
|
||
<!-- Make the @SuppressWarnings annotations available to Checkstyle --> | ||
<module name="SuppressWarningsHolder"/> | ||
|
||
<!-- ES Specific rules --> | ||
<module name="FinalLocalVariable"> | ||
<property name="tokens" value="VARIABLE_DEF,PARAMETER_DEF"/> | ||
<property name="validateEnhancedForLoopVariable" value="true"/> | ||
<message key="final.variable" | ||
value="All variables and parameters must be declared final, to enable a functional style. ''{0}'' is currently not final."/> | ||
</module> | ||
|
||
</module> | ||
|
||
<module name="BeforeExecutionExclusionFileFilter"> | ||
<property name="fileNamePattern" value=".*[\\/]kafka-admin-client[\\/].*$" /> | ||
</module> | ||
|
||
<module name="SuppressionFilter"> | ||
<property name="file" value="${checkstyle.config.path}/.checkstyle/suppressions.xml"/> | ||
</module> | ||
|
||
<!-- Filter out Checkstyle warnings that have been suppressed with the @SuppressWarnings annotation --> | ||
<module name="SuppressWarningsFilter"/> | ||
|
||
</module> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,139 @@ | ||
<?xml version="1.0"?> | ||
<!DOCTYPE module PUBLIC | ||
"-//Puppy Crawl//DTD Check Configuration 1.3//EN" | ||
"http://checkstyle.sourceforge.net/dtds/configuration_1_3.dtd"> | ||
|
||
<module name="Checker"> | ||
|
||
<property name="localeLanguage" value="en"/> | ||
|
||
<module name="FileTabCharacter"/> | ||
|
||
<module name="SuppressWarningsFilter"/> | ||
|
||
<module name="TreeWalker"> | ||
|
||
<!-- code cleanup --> | ||
<module name="UnusedImports"> | ||
<property name="processJavadoc" value="true"/> | ||
</module> | ||
<module name="RedundantImport"/> | ||
<module name="IllegalImport"/> | ||
<module name="EqualsHashCode"/> | ||
<module name="SimplifyBooleanExpression"/> | ||
<module name="OneStatementPerLine"/> | ||
<module name="UnnecessaryParentheses"/> | ||
<module name="SimplifyBooleanReturn"/> | ||
|
||
<!-- style --> | ||
<module name="DefaultComesLast"/> | ||
<module name="EmptyStatement"/> | ||
<module name="ArrayTypeStyle"/> | ||
<module name="UpperEll"/> | ||
<module name="LeftCurly"/> | ||
<module name="RightCurly"/> | ||
<module name="EmptyStatement"/> | ||
<module name="ConstantName"> | ||
<property name="format" value="(^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$)|(^log$)"/> | ||
</module> | ||
<module name="LocalVariableName"/> | ||
<module name="LocalFinalVariableName"/> | ||
<module name="MemberName"/> | ||
<module name="ClassTypeParameterName"> | ||
<property name="format" value="^[A-Z][a-zA-Z0-9]*$$"/> | ||
</module> | ||
<module name="MethodTypeParameterName"> | ||
<property name="format" value="^[A-Z][a-zA-Z0-9]*$$"/> | ||
</module> | ||
<module name="InterfaceTypeParameterName"> | ||
<property name="format" value="^[A-Z][a-zA-Z0-9]*$$"/> | ||
</module> | ||
<module name="PackageName"/> | ||
<module name="ParameterName"/> | ||
<module name="StaticVariableName"/> | ||
<module name="TypeName"/> | ||
<module name="AvoidStarImport"/> | ||
|
||
<!-- dependencies --> | ||
<!--<module name="ImportControl"> | ||
<property name="file" value="${importControlFile}"/> | ||
</module>--> | ||
|
||
<!-- whitespace --> | ||
<module name="GenericWhitespace"/> | ||
<module name="NoWhitespaceBefore"/> | ||
<module name="WhitespaceAfter"/> | ||
<module name="NoWhitespaceAfter"/> | ||
<module name="WhitespaceAround"> | ||
<property name="allowEmptyConstructors" value="true"/> | ||
<property name="allowEmptyMethods" value="true"/> | ||
</module> | ||
<module name="Indentation"/> | ||
<module name="MethodParamPad"/> | ||
<module name="ParenPad"/> | ||
<module name="TypecastParenPad"/> | ||
|
||
<!-- locale-sensitive methods should specify locale --> | ||
<module name="Regexp"> | ||
<property name="format" value="\.to(Lower|Upper)Case\(\)"/> | ||
<property name="illegalPattern" value="true"/> | ||
<property name="ignoreComments" value="true"/> | ||
</module> | ||
|
||
<!-- code quality --> | ||
<module name="MethodLength"/> | ||
<module name="ParameterNumber"> | ||
<!-- default is 8 --> | ||
<property name="max" value="13"/> | ||
</module> | ||
<module name="ClassDataAbstractionCoupling"> | ||
<!-- default is 7 --> | ||
<property name="max" value="20"/> | ||
</module> | ||
<module name="BooleanExpressionComplexity"> | ||
<!-- default is 3 --> | ||
<property name="max" value="5"/> | ||
</module> | ||
|
||
<module name="ClassFanOutComplexity"> | ||
<!-- default is 20 --> | ||
<property name="max" value="44"/> | ||
</module> | ||
<module name="CyclomaticComplexity"> | ||
<!-- default is 10--> | ||
<property name="max" value="19"/> | ||
</module> | ||
<module name="JavaNCSS"> | ||
<!-- default is 50 --> | ||
<property name="methodMaximum" value="100"/> | ||
</module> | ||
<module name="NPathComplexity"> | ||
<!-- default is 200 --> | ||
<property name="max" value="9111"/> | ||
</module> | ||
|
||
<module name="IllegalToken"> | ||
<property name="tokens" value="LITERAL_ASSERT"/> | ||
</module> | ||
|
||
<!-- Make the @SuppressWarnings annotations available to Checkstyle --> | ||
<module name="SuppressWarningsHolder"/> | ||
|
||
<!-- ES Specific rules --> | ||
<module name="FinalLocalVariable"> | ||
<property name="tokens" value="VARIABLE_DEF,PARAMETER_DEF"/> | ||
<property name="validateEnhancedForLoopVariable" value="true"/> | ||
<message key="final.variable" | ||
value="All variables and parameters must be declared final, to enable a functional style. ''{0}'' is currently not final."/> | ||
</module> | ||
|
||
</module> | ||
|
||
<module name="SuppressionFilter"> | ||
<property name="file" value=".checkstyle/suppressions.xml"/> | ||
</module> | ||
|
||
<!-- Filter out Checkstyle warnings that have been suppressed with the @SuppressWarnings annotation --> | ||
<module name="SuppressWarningsFilter"/> | ||
|
||
</module> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<?xml version="1.0"?> | ||
|
||
<!DOCTYPE suppressions PUBLIC | ||
"-//Puppy Crawl//DTD Suppressions 1.1//EN" | ||
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd"> | ||
|
||
<suppressions> | ||
|
||
<!-- Note that [/\\] must be used as the path separator for cross-platform support --> | ||
|
||
</suppressions> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
name: Checkstyle and Tests | ||
|
||
on: | ||
pull_request: | ||
branches: | ||
- 'master' | ||
types: [opened, synchronize, reopened] | ||
|
||
jobs: | ||
test: | ||
name: Checkstyle and Tests | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v3 | ||
- name: Set up JDK 8 | ||
uses: actions/setup-java@v3 | ||
with: | ||
java-version: 8 | ||
distribution: 'temurin' | ||
- name: Get java-version | ||
run: | | ||
BUILD_VERSION=$( mvn help:evaluate -Dexpression=project.version -q -DforceStdout ) | ||
echo "VERSION=$BUILD_VERSION" >> $GITHUB_ENV | ||
- name: Compile | ||
run: mvn -X compile | ||
- name: Checkstyle | ||
run: mvn -X validate | ||
- name: Test | ||
run: mvn -X test | ||
verify-commits: | ||
name: Verify Commits | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
with: | ||
ref: ${{ github.event.pull_request.head.sha }} | ||
fetch-depth: 0 | ||
|
||
- name: Verify Signed-off-by | ||
run: | | ||
for commit in $(git rev-list --no-merges HEAD^..HEAD); do | ||
if ! git log -1 --format=%B "$commit" | grep -q "^Signed-off-by: "; then | ||
echo "Commit $commit is missing Signed-off-by line." | ||
exit 1 | ||
fi | ||
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.