From 004b2e23139874add39e2eae6421dacfca15cef0 Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Fri, 13 Mar 2026 16:38:56 +0100 Subject: [PATCH 01/11] Build: Add checkstyle plugin and add gradle task --- build.gradle | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build.gradle b/build.gradle index 9fd8b42..597dec4 100644 --- a/build.gradle +++ b/build.gradle @@ -2,6 +2,7 @@ plugins { id 'application' id 'java' id 'org.openjfx.javafxplugin' version '0.1.0' + id 'checkstyle' } group = 'ch.unibas.dmi.dbis' @@ -43,6 +44,10 @@ test { useJUnitPlatform() } +checkstyle { + toolVersion = '10.21.0' +} + tasks.named('jar', Jar) { manifest { attributes('Main-Class': application.mainClass.get()) -- 2.52.0 From 57010d28728703556a67a53ba99804a3cd997b81 Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Fri, 13 Mar 2026 17:28:24 +0100 Subject: [PATCH 02/11] Add: Configuration file for checkstyle --- config/checkstyle/checkstyle.xml | 165 +++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 config/checkstyle/checkstyle.xml diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml new file mode 100644 index 0000000..59645dd --- /dev/null +++ b/config/checkstyle/checkstyle.xml @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- 2.52.0 From 18f17564d516aea598b5179258290249af622afc Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Fri, 13 Mar 2026 17:29:41 +0100 Subject: [PATCH 03/11] Ci: Configure GitLab ci pipeline to execute Checkstyle on manual trigger --- .gitlab-ci.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..b251ec5 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,10 @@ +stages: + - lint + +checkstyle: + stage: lint + image: gradle:8-jdk21 + script: + - gradle checkstyleMain checkstyleTest + rules: + - when: manual -- 2.52.0 From e797470ca3545a48a7f5e2f4ae7da99a84163ec1 Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Fri, 13 Mar 2026 17:35:42 +0100 Subject: [PATCH 04/11] Ci: Bump image for job to 'gradle:9.3.1-jdk25' --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b251ec5..d134405 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,7 +3,7 @@ stages: checkstyle: stage: lint - image: gradle:8-jdk21 + image: gradle:9.3.1-jdk25 script: - gradle checkstyleMain checkstyleTest rules: -- 2.52.0 From d311553de7212e2f4b46e719e924028b405b96df Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Fri, 13 Mar 2026 22:34:41 +0100 Subject: [PATCH 05/11] Add: Suppressions config for tests --- build.gradle | 4 ++++ config/checkstyle/checkstyle.xml | 9 +++++++-- config/checkstyle/suppressions.xml | 24 ++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 config/checkstyle/suppressions.xml diff --git a/build.gradle b/build.gradle index 597dec4..9091ade 100644 --- a/build.gradle +++ b/build.gradle @@ -46,6 +46,10 @@ test { checkstyle { toolVersion = '10.21.0' + configFile = file('config/checkstyle/checkstyle.xml') + configProperties = [ + 'suppressionFile': file('config/checkstyle/suppressions.xml').absolutePath + ] } tasks.named('jar', Jar) { diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml index 59645dd..0737055 100644 --- a/config/checkstyle/checkstyle.xml +++ b/config/checkstyle/checkstyle.xml @@ -12,6 +12,10 @@ + + + + @@ -141,9 +145,10 @@ + - + @@ -159,7 +164,7 @@ - + diff --git a/config/checkstyle/suppressions.xml b/config/checkstyle/suppressions.xml new file mode 100644 index 0000000..d532e42 --- /dev/null +++ b/config/checkstyle/suppressions.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + -- 2.52.0 From 28f8d172371de237e64ef18ac63a14d08fa31f0d Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Fri, 13 Mar 2026 22:36:23 +0100 Subject: [PATCH 06/11] Ci: Attach checkstyle report as job artifact --- .gitlab-ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d134405..184e9e5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,5 +6,12 @@ checkstyle: image: gradle:9.3.1-jdk25 script: - gradle checkstyleMain checkstyleTest + artifacts: + when: always + paths: + - build/reports/checkstyle/main.html + - build/reports/checkstyle/test.html + expose_as: 'Checkstyle Report' + expire_in: 1 week rules: - when: manual -- 2.52.0 From 815b60232cf9ab253a446d74f5dfb4d96f88063a Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Fri, 13 Mar 2026 22:56:36 +0100 Subject: [PATCH 07/11] Add: ImportOrder check to checkstyle config --- config/checkstyle/checkstyle.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml index 0737055..746bba4 100644 --- a/config/checkstyle/checkstyle.xml +++ b/config/checkstyle/checkstyle.xml @@ -60,6 +60,10 @@ + + + + -- 2.52.0 From fb02faffc985d997fb445c7867cbe4bc20a369e0 Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Fri, 13 Mar 2026 22:57:34 +0100 Subject: [PATCH 08/11] Build: Add spotless plugin and add task --- build.gradle | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/build.gradle b/build.gradle index 9091ade..dbcd602 100644 --- a/build.gradle +++ b/build.gradle @@ -3,6 +3,7 @@ plugins { id 'java' id 'org.openjfx.javafxplugin' version '0.1.0' id 'checkstyle' + id 'com.diffplug.spotless' version '7.0.2' } group = 'ch.unibas.dmi.dbis' @@ -52,6 +53,14 @@ checkstyle { ] } +spotless { + java { + googleJavaFormat() + importOrder() + removeUnusedImports() + } +} + tasks.named('jar', Jar) { manifest { attributes('Main-Class': application.mainClass.get()) -- 2.52.0 From cfeea5222d855910a8787d82587298eb4046a021 Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Fri, 13 Mar 2026 23:05:23 +0100 Subject: [PATCH 09/11] Ci: Add job to check if project compiles --- .gitlab-ci.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 184e9e5..d49e9b1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,6 @@ stages: - lint + - build checkstyle: stage: lint @@ -15,3 +16,11 @@ checkstyle: expire_in: 1 week rules: - when: manual + +compile-check: + stage: build + image: gradle:9.3.1-jdk25 + script: + - gradle compileTestJava + rules: + - when: manual -- 2.52.0 From 8aa71a4430e957f60cb87a45762428772dd4d306 Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Fri, 13 Mar 2026 23:11:28 +0100 Subject: [PATCH 10/11] Ci: Cache gradle for faster job execution --- .gitlab-ci.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d49e9b1..7bb625a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,7 +2,17 @@ stages: - lint - build +# Reusable definitions +.gradle-cache: &gradle-cache + cache: + key: '$CI_PROJECT_ID-gradle' + paths: + - .gradle/ + - ~/.gradle/caches/ + +# Jobs checkstyle: + <<: *gradle-cache stage: lint image: gradle:9.3.1-jdk25 script: @@ -18,6 +28,7 @@ checkstyle: - when: manual compile-check: + <<: *gradle-cache stage: build image: gradle:9.3.1-jdk25 script: -- 2.52.0 From 147f84665ea0ec3831db9da96555e9b5e531a43b Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Fri, 13 Mar 2026 23:17:10 +0100 Subject: [PATCH 11/11] Ci: Make compile-check job run independent from other jobs --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7bb625a..67d3422 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,5 +33,6 @@ compile-check: image: gradle:9.3.1-jdk25 script: - gradle compileTestJava + needs: [] rules: - when: manual -- 2.52.0