plugin/build.gradle.kts (86 lines of code) (raw):

/* * Copyright 2021-2025 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ @file:Suppress("UnstableApiUsage") import org.jetbrains.dokka.gradle.DokkaTask fun properties(key: String) = providers.gradleProperty(key) fun environment(key: String) = providers.environmentVariable(key) plugins { `kotlin-dsl` `maven-publish` alias(libs.plugins.pluginPublish) alias(libs.plugins.dokka) } group = properties("projectGroup").get() version = "${properties("majorVersion").get()}.${properties("buildNumber").get()}" description = properties("description").get() repositories { mavenCentral() } dependencies { testImplementation(gradleTestKit()) testImplementation(kotlin("test")) testImplementation(kotlin("test-junit")) } kotlin { jvmToolchain(8) } val dokkaHtml by tasks.getting(DokkaTask::class) val javadocJar by tasks.registering(Jar::class) { dependsOn(dokkaHtml) archiveClassifier = "javadoc" from(dokkaHtml.outputDirectory) } val sourcesJar = tasks.register<Jar>("sourcesJar") { archiveClassifier = "sources" from(sourceSets.main.get().allSource) } tasks { test { val testGradleHome = layout.buildDirectory.asFile.get().resolve("testGradleHome") doFirst { testGradleHome.mkdir() } systemProperties["test.gradle.home"] = testGradleHome systemProperties["test.gradle.default"] = properties("gradleVersion").get() systemProperties["test.gradle.version"] = properties("testGradleVersion").get() systemProperties["test.gradle.arguments"] = properties("testGradleArguments").get() outputs.dir(testGradleHome) } } gradlePlugin { website = properties("website") vcsUrl = properties("vcsUrl") plugins.create("qodana") { id = properties("pluginId").get() displayName = properties("name").get() implementationClass = properties("pluginImplementationClass").get() description = project.description tags = properties("tags").map { it.split(',') } } } publishing { publications { create<MavenPublication>("common") { groupId = group.toString() artifactId = "cli" version = version.toString() from(components["java"]) pom { url.set("https://github.com/JetBrains/qodana-action") licenses { license { name.set("Apache-2.0") url.set("https://github.com/JetBrains/qodana-action/blob/main/LICENSE") } } } } } repositories { maven { url = uri("https://packages.jetbrains.team/maven/p/sa/maven-public") credentials { username = System.getenv("JB_SPACE_INTELLIJ_CLIENT_ID") password = System.getenv("JB_SPACE_INTELLIJ_CLIENT_SECRET") } } } }