From 8b049c2abeeffbb2561b4fc13cb7fa6ade5d7af4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Robaczy=C5=84ski?= Date: Thu, 16 Oct 2025 15:39:56 +0200 Subject: [PATCH 1/6] Migrate project to version catalogs --- build.gradle | 18 ++---------------- gradle/libs.versions.toml | 11 +++++++++++ plugin/build.gradle | 12 +++--------- settings.gradle | 13 +++++++++++++ 4 files changed, 29 insertions(+), 25 deletions(-) create mode 100644 gradle/libs.versions.toml diff --git a/build.gradle b/build.gradle index e680183..7ea9c09 100644 --- a/build.gradle +++ b/build.gradle @@ -1,19 +1,5 @@ -buildscript { - ext.kotlin_version = '2.2.20' - repositories { - mavenCentral() - gradlePluginPortal() - } - dependencies { - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - -allprojects { - repositories { - google() - mavenCentral() - } +plugins { + alias libs.plugins.kotlin.jvm apply false } tasks.register('clean', Delete) { Delete _ -> diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..add91a7 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,11 @@ +[versions] +kotlin = "2.2.20" +junit = "4.13.2" +publish = "1.3.1" + +[plugins] +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +gradle-publish = { id = "com.gradle.plugin-publish", version.ref = "publish" } + +[libraries] +junit = { module = "junit:junit", version.ref = "junit" } diff --git a/plugin/build.gradle b/plugin/build.gradle index 2fe0209..d88577d 100644 --- a/plugin/build.gradle +++ b/plugin/build.gradle @@ -1,19 +1,13 @@ plugins { - id "com.gradle.plugin-publish" version "1.3.1" id "java-gradle-plugin" -} - -apply plugin: 'kotlin' - -repositories { - mavenCentral() + alias(libs.plugins.kotlin.jvm) + alias(libs.plugins.gradle.publish) } dependencies { implementation gradleApi() - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" - testImplementation 'junit:junit:4.13.2' + testImplementation libs.junit } compileKotlin { diff --git a/settings.gradle b/settings.gradle index c1d1ef1..998b0ce 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1,14 @@ +pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + } +} + +dependencyResolutionManagement { + repositories { + mavenCentral() + } +} + include ':plugin' From 51af6bdc62e40b9294f261ea3a789f4a6e254fd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Robaczy=C5=84ski?= Date: Thu, 23 Oct 2025 13:01:58 +0200 Subject: [PATCH 2/6] Add Gradle Lint plugin --- build.gradle | 1 + gradle/libs.versions.toml | 5 ++++- plugin/build.gradle | 3 +++ settings.gradle | 2 ++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 7ea9c09..f2a3a6a 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,6 @@ plugins { alias libs.plugins.kotlin.jvm apply false + alias libs.plugins.lint apply false } tasks.register('clean', Delete) { Delete _ -> diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index add91a7..1bf2d6b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -4,8 +4,11 @@ junit = "4.13.2" publish = "1.3.1" [plugins] -kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +lint = { id = "com.android.lint", version = "8.12.3"} gradle-publish = { id = "com.gradle.plugin-publish", version.ref = "publish" } +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } [libraries] +androidx-gradleLintChecks = 'androidx.lint:lint-gradle:1.0.0-alpha05' + junit = { module = "junit:junit", version.ref = "junit" } diff --git a/plugin/build.gradle b/plugin/build.gradle index d88577d..dc29ca3 100644 --- a/plugin/build.gradle +++ b/plugin/build.gradle @@ -2,11 +2,14 @@ plugins { id "java-gradle-plugin" alias(libs.plugins.kotlin.jvm) alias(libs.plugins.gradle.publish) + alias(libs.plugins.lint) } dependencies { implementation gradleApi() + lintChecks libs.androidx.gradleLintChecks + testImplementation libs.junit } diff --git a/settings.gradle b/settings.gradle index 998b0ce..fb29256 100644 --- a/settings.gradle +++ b/settings.gradle @@ -2,12 +2,14 @@ pluginManagement { repositories { gradlePluginPortal() mavenCentral() + google() } } dependencyResolutionManagement { repositories { mavenCentral() + google() } } From a7d91695ca7acfb475051be97ec08b49cd77167f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Robaczy=C5=84ski?= Date: Thu, 23 Oct 2025 13:02:12 +0200 Subject: [PATCH 3/6] Exclude lint from required CI job temporarily --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 95316f7..60aeb9a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,4 +7,4 @@ jobs: - name: Checkout the code uses: actions/checkout@v3 - name: Run Tests - run: ./gradlew check --stacktrace + run: ./gradlew check --stacktrace -X lintJvm From 623a66205ff7a3374f4c4c04fce6e4288e5ad50c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Robaczy=C5=84ski?= Date: Thu, 23 Oct 2025 13:05:17 +0200 Subject: [PATCH 4/6] Add separate Lint job for verifying Gradle APIs --- .github/workflows/lint.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .github/workflows/lint.yml diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..fcdccfd --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,10 @@ +name: Lint +on: [push] +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout the code + uses: actions/checkout@v3 + - name: Run Gradle Lint + run: ./gradlew lintJvm From 15a7afc34a8a9bb221012ed212ff82c5fd10dffd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Robaczy=C5=84ski?= Date: Thu, 23 Oct 2025 13:16:04 +0200 Subject: [PATCH 5/6] Add artifact upload --- .github/workflows/lint.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index fcdccfd..8e8f562 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -6,5 +6,13 @@ jobs: steps: - name: Checkout the code uses: actions/checkout@v3 + - name: Run Gradle Lint run: ./gradlew lintJvm + + - name: Upload lint results + uses: actions/upload-artifact@v4 + with: + name: lint-results + path: | + plugin/build/reports/lint-results.html From fd79942c19162905a97b3d769ef5d753ca03d5b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Robaczy=C5=84ski?= Date: Thu, 23 Oct 2025 13:42:15 +0200 Subject: [PATCH 6/6] Fix exclude tag --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 60aeb9a..9a66159 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,4 +7,4 @@ jobs: - name: Checkout the code uses: actions/checkout@v3 - name: Run Tests - run: ./gradlew check --stacktrace -X lintJvm + run: ./gradlew check --stacktrace -x lintJvm