Skip to content

Commit 606f805

Browse files
committed
ci: lint for ktlint compliance
Adds ktlint to pre-commit to include in the linting setup for all projects. Additionally, the existing ktlint Gradle setup is simplified and applied to all subprojects.
1 parent 5034774 commit 606f805

File tree

13 files changed

+26
-36
lines changed

13 files changed

+26
-36
lines changed

.pre-commit-config.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,11 @@ repos:
2323
stages: [commit-msg]
2424
additional_dependencies: ["@commitlint/config-angular"]
2525
args: ["--config", "./commitlint.config.js"]
26+
- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks
27+
rev: v2.10.0
28+
hooks:
29+
- id: pretty-format-kotlin
30+
args:
31+
# IMPORTANT: keep in sync with the version configured in build.gradle.kts
32+
- --ktlint-version=0.50.0
33+
- --autofix

build.gradle.kts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ dependencies {
5252
subprojects {
5353
apply(plugin = "maven-publish")
5454
apply(plugin = "org.jetbrains.dokka")
55+
apply(plugin = "org.jlleitschuh.gradle.ktlint")
56+
5557
version = rootProject.version
5658
group = rootProject.group
5759

@@ -61,6 +63,11 @@ subprojects {
6163
}
6264
}
6365

66+
configure<org.jlleitschuh.gradle.ktlint.KtlintExtension> {
67+
// IMPORTANT: keep in sync with the version in .pre-commit-config.yaml
68+
version.set("0.50.0")
69+
}
70+
6471
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().all {
6572
kotlinOptions {
6673
jvmTarget = "11"

model-api/build.gradle.kts

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,19 @@
1-
21
plugins {
32
id("maven-publish")
43
id("org.jetbrains.kotlin.multiplatform")
5-
id("org.jlleitschuh.gradle.ktlint")
64
kotlin("plugin.serialization")
75
}
86

9-
configurations {
10-
ktlint
11-
}
12-
137
description = "API to access models stored in Modelix"
148

159
ktlint {
16-
disabledRules.add("no-wildcard-imports")
17-
outputToConsole.set(true)
18-
this.filter {
19-
this.exclude {
10+
filter {
11+
exclude {
2012
it.file.toPath().toAbsolutePath().startsWith(project(":ts-model-api").buildDir.toPath().toAbsolutePath())
2113
}
2214
}
2315
}
2416

25-
tasks.named("check") {
26-
dependsOn("ktlintCheck")
27-
}
28-
2917
kotlin {
3018
jvm()
3119
js(IR) {
@@ -80,7 +68,14 @@ kotlin {
8068
}
8169
}
8270

83-
listOf("sourcesJar", "runKtlintCheckOverJsMainSourceSet", "jsSourcesJar", "jsPackageJson", "compileKotlinJs", "jsProcessResources").forEach {
71+
listOf(
72+
"sourcesJar",
73+
"runKtlintCheckOverJsMainSourceSet",
74+
"jsSourcesJar",
75+
"jsPackageJson",
76+
"compileKotlinJs",
77+
"jsProcessResources",
78+
).forEach {
8479
tasks.named(it) {
8580
dependsOn(":ts-model-api:npm_run_build")
8681
dependsOn(":ts-model-api:patchKotlinExternals")

model-client/build.gradle.kts

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,16 @@ plugins {
22
`maven-publish`
33
id("org.jetbrains.kotlin.multiplatform")
44
id("com.diffplug.spotless")
5-
id("org.jlleitschuh.gradle.ktlint")
65
`java-library`
76
jacoco
87
}
98

10-
configurations {
11-
ktlint
12-
}
13-
149
java {
1510
toolchain {
1611
languageVersion.set(JavaLanguageVersion.of(11))
1712
}
1813
}
1914

20-
ktlint {
21-
disabledRules.add("no-wildcard-imports")
22-
}
23-
24-
tasks.named("check") {
25-
dependsOn("ktlintCheck")
26-
}
27-
2815
val kotlinCoroutinesVersion: String by rootProject
2916
val kotlinLoggingVersion: String by rootProject
3017
val ktorVersion: String by rootProject

modelql-client/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
plugins {
1515
kotlin("multiplatform")
1616
`maven-publish`
17-
alias(libs.plugins.ktlint)
1817
}
1918

2019
kotlin {

modelql-core/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ plugins {
1515
kotlin("multiplatform")
1616
kotlin("plugin.serialization")
1717
`maven-publish`
18-
alias(libs.plugins.ktlint)
1918
}
2019

2120
kotlin {

modelql-html/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ plugins {
1515
kotlin("multiplatform")
1616
kotlin("plugin.serialization")
1717
`maven-publish`
18-
alias(libs.plugins.ktlint)
1918
}
2019

2120
kotlin {

modelql-server/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
plugins {
22
kotlin("jvm")
33
`maven-publish`
4-
alias(libs.plugins.ktlint)
54
}
65

76
dependencies {

modelql-typed/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ plugins {
1515
kotlin("multiplatform")
1616
kotlin("plugin.serialization")
1717
`maven-publish`
18-
alias(libs.plugins.ktlint)
1918
}
2019

2120
kotlin {

modelql-untyped/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ plugins {
1515
kotlin("multiplatform")
1616
kotlin("plugin.serialization")
1717
`maven-publish`
18-
alias(libs.plugins.ktlint)
1918
}
2019

2120
kotlin {

0 commit comments

Comments
 (0)