From 6f9edee6cec364cabc26b386df83ae87d616c7ca Mon Sep 17 00:00:00 2001 From: Marvin Scham Date: Fri, 19 May 2023 23:11:37 +0000 Subject: [PATCH] Integration CI mit SonarQube --- .gitlab-ci.yml | 31 ++++- Script/CI_SonarQube_CLI.sh | 44 ++++++++ easydrop/pom.xml | 68 ----------- easydrop/src/main/java/de/rwu/App.java | 13 --- easydrop/src/main/java/de/rwu/DemoClass.java | 7 -- easydrop/src/test/java/de/rwu/AppTest.java | 38 ------- .../src/test/java/de/rwu/DemoClassTest.java | 14 --- pom.xml | 106 ++++++++++++++++++ .../java/de/rwu/easydrop/demo/DemoClass.java | 16 +++ .../de/rwu/easydrop/demo/package-info.java | 6 + .../de/rwu/easydrop/demo/DemoClassTest.java | 19 ++++ 11 files changed, 218 insertions(+), 144 deletions(-) create mode 100644 Script/CI_SonarQube_CLI.sh delete mode 100644 easydrop/pom.xml delete mode 100644 easydrop/src/main/java/de/rwu/App.java delete mode 100644 easydrop/src/main/java/de/rwu/DemoClass.java delete mode 100644 easydrop/src/test/java/de/rwu/AppTest.java delete mode 100644 easydrop/src/test/java/de/rwu/DemoClassTest.java create mode 100644 pom.xml create mode 100644 src/main/java/de/rwu/easydrop/demo/DemoClass.java create mode 100644 src/main/java/de/rwu/easydrop/demo/package-info.java create mode 100644 src/test/java/de/rwu/easydrop/demo/DemoClassTest.java diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 200e56a..ae90c5b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,21 +1,44 @@ +variables: + MVN_OPTS: >- + --batch-mode + --errors + --fail-at-end + --show-version + --no-transfer-progress + -DinstallAtEnd=true + -DdeployAtEnd=true + -Dsonar.host.url=https://sonar.fbe-adswen.rwu.de + -Dsonar.token=sqa_c39258caceb01d59515d6dfa9440a7b05cdd15f4 + -Dhttps.protocols=TLSv1.2 + -Dorg.slf4j.simpleLogger.showDateTime=true + -Djava.awt.headless=true + image: maven:3.9.1-eclipse-temurin-17 cache: + key: "$CI_JOB_NAME" paths: - .m2/repository stages: - build - test + - analyze build: stage: build script: - - echo "Maven Build started..." - - "mvn compile" + - echo "Starting Maven build..." + - mvn $MVN_OPTS clean compile test: stage: test script: - - echo "Maven Test started..." - - "mvn test" + - echo "Starting Maven Test..." + - mvn $MVN_OPTS test + +analyze: + stage: analyze + script: + - echo "Starting Code Analysis..." + - mvn $MVN_OPTS verify sonar:sonar -Pcoverage diff --git a/Script/CI_SonarQube_CLI.sh b/Script/CI_SonarQube_CLI.sh new file mode 100644 index 0000000..654f24e --- /dev/null +++ b/Script/CI_SonarQube_CLI.sh @@ -0,0 +1,44 @@ +mvn \ + --batch-mode \ + --errors \ + --fail-at-end \ + --show-version \ + --no-transfer-progress \ + -DinstallAtEnd=true \ + -DdeployAtEnd=true \ + -Dsonar.host.url=https://sonar.fbe-adswen.rwu.de \ + -Dsonar.token=sqa_c39258caceb01d59515d6dfa9440a7b05cdd15f4 \ + -Dhttps.protocols=TLSv1.2 \ + -Dorg.slf4j.simpleLogger.showDateTime=true \ + -Djava.awt.headless=true \ + clean compile + +mvn \ + --batch-mode \ + --errors \ + --fail-at-end \ + --show-version \ + --no-transfer-progress \ + -DinstallAtEnd=true \ + -DdeployAtEnd=true \ + -Dsonar.host.url=https://sonar.fbe-adswen.rwu.de \ + -Dsonar.token=sqa_c39258caceb01d59515d6dfa9440a7b05cdd15f4 \ + -Dhttps.protocols=TLSv1.2 \ + -Dorg.slf4j.simpleLogger.showDateTime=true \ + -Djava.awt.headless=true \ + test + +mvn \ + --batch-mode \ + --errors \ + --fail-at-end \ + --show-version \ + --no-transfer-progress \ + -DinstallAtEnd=true \ + -DdeployAtEnd=true \ + -Dsonar.host.url=https://sonar.fbe-adswen.rwu.de \ + -Dsonar.token=sqa_c39258caceb01d59515d6dfa9440a7b05cdd15f4 \ + -Dhttps.protocols=TLSv1.2 \ + -Dorg.slf4j.simpleLogger.showDateTime=true \ + -Djava.awt.headless=true \ + verify sonar:sonar -Pcoverage diff --git a/easydrop/pom.xml b/easydrop/pom.xml deleted file mode 100644 index 9d617db..0000000 --- a/easydrop/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ - - 4.0.0 - de.rwu - easydrop - jar - 1.0-SNAPSHOT - easydrop - http://maven.apache.org - - UTF-8 - - - - junit - junit - 4.13.2 - test - - - org.mockito - mockito-core - 5.3.1 - test - - - - - - org.apache.maven.plugins - maven-checkstyle-plugin - 3.2.2 - - - checkstyle-check - verify - - google_checks.xml - true - - - check - - - - - - org.jacoco - jacoco-maven-plugin - 0.8.10 - - - - prepare-agent - - - - generate-code-coverage-report - test - - report - - - - - - - diff --git a/easydrop/src/main/java/de/rwu/App.java b/easydrop/src/main/java/de/rwu/App.java deleted file mode 100644 index 5d94a3f..0000000 --- a/easydrop/src/main/java/de/rwu/App.java +++ /dev/null @@ -1,13 +0,0 @@ -package de.rwu; - -/** - * Hello world! - * - */ -public class App -{ - public static void main( String[] args ) - { - System.out.println( "Hello World!" ); - } -} diff --git a/easydrop/src/main/java/de/rwu/DemoClass.java b/easydrop/src/main/java/de/rwu/DemoClass.java deleted file mode 100644 index 492fbec..0000000 --- a/easydrop/src/main/java/de/rwu/DemoClass.java +++ /dev/null @@ -1,7 +0,0 @@ -package de.rwu; - -public class DemoClass { - public String demoMethod() { - return "success!"; - } -} diff --git a/easydrop/src/test/java/de/rwu/AppTest.java b/easydrop/src/test/java/de/rwu/AppTest.java deleted file mode 100644 index a5893d0..0000000 --- a/easydrop/src/test/java/de/rwu/AppTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package de.rwu; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -/** - * Unit test for simple App. - */ -public class AppTest - extends TestCase -{ - /** - * Create the test case - * - * @param testName name of the test case - */ - public AppTest( String testName ) - { - super( testName ); - } - - /** - * @return the suite of tests being tested - */ - public static Test suite() - { - return new TestSuite( AppTest.class ); - } - - /** - * Rigourous Test :-) - */ - public void testApp() - { - assertTrue( true ); - } -} diff --git a/easydrop/src/test/java/de/rwu/DemoClassTest.java b/easydrop/src/test/java/de/rwu/DemoClassTest.java deleted file mode 100644 index 839201c..0000000 --- a/easydrop/src/test/java/de/rwu/DemoClassTest.java +++ /dev/null @@ -1,14 +0,0 @@ -package de.rwu; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -public class DemoClassTest { - @Test - public void testDemoMethod() { - DemoClass demoClass = new DemoClass(); - String result = demoClass.demoMethod(); - assertEquals("success!", result); - } -} diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..880badf --- /dev/null +++ b/pom.xml @@ -0,0 +1,106 @@ + + 4.0.0 + de.rwu + easydrop + jar + 0.1-SNAPSHOT + EasyDrop + http://maven.apache.org + + + UTF-8 + + + + + junit + junit + 4.13.2 + test + + + org.mockito + mockito-core + 5.3.1 + test + + + + + + + org.apache.maven.plugins + maven-checkstyle-plugin + 3.2.2 + + + checkstyle-check + verify + + true + true + true + false + + + check + + + + + + + org.jacoco + jacoco-maven-plugin + 0.8.10 + + + + + + + coverage + + + + org.jacoco + jacoco-maven-plugin + 0.8.10 + + + + prepare-agent + + + + generate-code-coverage-report + verify + + report + + + + + + + + + + + + + org.jacoco + jacoco-maven-plugin + + + + report + + + + + + + \ No newline at end of file diff --git a/src/main/java/de/rwu/easydrop/demo/DemoClass.java b/src/main/java/de/rwu/easydrop/demo/DemoClass.java new file mode 100644 index 0000000..ff91a4f --- /dev/null +++ b/src/main/java/de/rwu/easydrop/demo/DemoClass.java @@ -0,0 +1,16 @@ +package de.rwu.easydrop.demo; + +/** + * Demo-Class. + */ +public final class DemoClass { + /** + * Demo-Method inverting a boolean. + * + * @param bool Input Boolean + * @return Inverted Boolean + */ + public boolean invertBool(final boolean bool) { + return !bool; + } +} diff --git a/src/main/java/de/rwu/easydrop/demo/package-info.java b/src/main/java/de/rwu/easydrop/demo/package-info.java new file mode 100644 index 0000000..01c1a1b --- /dev/null +++ b/src/main/java/de/rwu/easydrop/demo/package-info.java @@ -0,0 +1,6 @@ +/** + * Dieses Paket beinhaltet ist zu Demo-Zwecken. + * + * @since 0.1-SNAPSHOT + */ +package de.rwu.easydrop.demo; diff --git a/src/test/java/de/rwu/easydrop/demo/DemoClassTest.java b/src/test/java/de/rwu/easydrop/demo/DemoClassTest.java new file mode 100644 index 0000000..fb4aa0e --- /dev/null +++ b/src/test/java/de/rwu/easydrop/demo/DemoClassTest.java @@ -0,0 +1,19 @@ +package de.rwu.easydrop.demo; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class DemoClassTest { + private final DemoClass demoClass = new DemoClass(); + + @Test + public void testInvertBoolTrue() { + assertEquals("Inverting true should return false", false, demoClass.invertBool(true)); + } + + @Test + public void testInvertBoolFalse() { + assertEquals("Inverting false should return true", true, demoClass.invertBool(false)); + } +}