PMT-3: Add Static Analysis

This commit is contained in:
Dominik Säume 2024-09-13 00:54:02 +02:00
parent 424d7ac95a
commit 6e4a925328
Signed by: SZUT-Dominik
GPG key ID: 67D15BB250B41E7C
5 changed files with 40 additions and 18 deletions

View file

@ -15,7 +15,11 @@ jobs:
uses: "https://git.euph.dev/actions/checkout@v3" uses: "https://git.euph.dev/actions/checkout@v3"
- name: "Prepare Gradle" - name: "Prepare Gradle"
run: gradle clean run: gradle clean
- name: "Checkstyle Linting Main" - name: "Linting Main"
run: gradle checkstyleMain run: gradle checkstyleMain
- name: "Checkstyle Linting Test" - name: "Linting Test"
run: gradle checkstyleTest run: gradle checkstyleTest
- name: "Static Analysis Main"
run: gradle spotbugsMain
- name: "Static Analysis Test"
run: gradle spotbugsTest

View file

@ -1,5 +1,5 @@
<component name="ProjectRunConfigurationManager"> <component name="ProjectRunConfigurationManager">
<configuration default="false" name="Validate Linting" type="GradleRunConfiguration" factoryName="Gradle"> <configuration default="false" name="Main Static Analysis" type="GradleRunConfiguration" factoryName="Gradle">
<ExternalSystemSettings> <ExternalSystemSettings>
<option name="executionName" /> <option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="externalProjectPath" value="$PROJECT_DIR$" />
@ -10,7 +10,7 @@
</option> </option>
<option name="taskNames"> <option name="taskNames">
<list> <list>
<option value="checkstyleMain" /> <option value="spotbugsMain" />
</list> </list>
</option> </option>
<option name="vmOptions" /> <option name="vmOptions" />

View file

@ -1,5 +1,5 @@
<component name="ProjectRunConfigurationManager"> <component name="ProjectRunConfigurationManager">
<configuration default="false" name="Validate OAS" type="GradleRunConfiguration" factoryName="Gradle"> <configuration default="false" name="Test Static Analysis" type="GradleRunConfiguration" factoryName="Gradle">
<ExternalSystemSettings> <ExternalSystemSettings>
<option name="executionName" /> <option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="externalProjectPath" value="$PROJECT_DIR$" />
@ -9,9 +9,7 @@
<list /> <list />
</option> </option>
<option name="taskNames"> <option name="taskNames">
<list> <list />
<option value="validateSwagger" />
</list>
</option> </option>
<option name="vmOptions" /> <option name="vmOptions" />
</ExternalSystemSettings> </ExternalSystemSettings>

View file

@ -1,3 +1,6 @@
import com.github.spotbugs.snom.Confidence
import com.github.spotbugs.snom.Effort
import com.github.spotbugs.snom.SpotBugsTask
import org.hidetake.gradle.swagger.generator.GenerateSwaggerCode import org.hidetake.gradle.swagger.generator.GenerateSwaggerCode
repositories { repositories {
@ -7,6 +10,7 @@ repositories {
plugins { plugins {
java java
checkstyle checkstyle
id("com.github.spotbugs") version "6.0.22"
id("org.springframework.boot") version "3.3.3" id("org.springframework.boot") version "3.3.3"
id("io.spring.dependency-management") version "1.1.6" id("io.spring.dependency-management") version "1.1.6"
id("org.hidetake.swagger.generator") version "2.19.2" id("org.hidetake.swagger.generator") version "2.19.2"
@ -17,6 +21,12 @@ checkstyle {
configFile = file("src/main/resources/checkstyle.xml") configFile = file("src/main/resources/checkstyle.xml")
} }
spotbugs {
toolVersion = "4.8.6"
effort.set(Effort.MAX)
reportLevel.set(Confidence.LOW)
}
group = "de.hmmh" group = "de.hmmh"
version = "0.0.1-SNAPSHOT" version = "0.0.1-SNAPSHOT"
@ -63,13 +73,24 @@ swaggerSources {
code(delegateClosureOf<GenerateSwaggerCode> { code(delegateClosureOf<GenerateSwaggerCode> {
language = "spring" language = "spring"
components = listOf("models", "apis", "supportingFiles=ApiUtil.java") components = listOf("models", "apis", "supportingFiles=ApiUtil.java")
code.rawOptions = listOf("--ignore-file-override=" + file("${rootDir}/src/main/resources/.codegen-ignore").absolutePath) code.rawOptions =
listOf("--ignore-file-override=" + file("${rootDir}/src/main/resources/.codegen-ignore").absolutePath)
dependsOn(validationTask) dependsOn(validationTask)
}) })
} }
} }
tasks { tasks {
withType<Checkstyle> {
reports {
xml.required.set(true)
html.required.set(false)
}
}
withType<SpotBugsTask> {
excludeFilter.set(file("${rootDir}/src/main/resources/spotbugs-exclude.xml"))
}
processResources { processResources {
dependsOn(generateSwaggerCode) dependsOn(generateSwaggerCode)
} }
@ -79,12 +100,6 @@ tasks {
named("compileJava").configure { named("compileJava").configure {
dependsOn(swaggerSources.getByName("pmt").code) dependsOn(swaggerSources.getByName("pmt").code)
} }
withType<Checkstyle> {
reports {
xml.required.set(true)
html.required.set(false)
}
}
} }
sourceSets { sourceSets {

View file

@ -0,0 +1,5 @@
<FindBugsFilter>
<Match>
<Package name="de.hmmh.pmt.oas"/>
</Match>
</FindBugsFilter>