|
1 |
| -import org.jetbrains.changelog.Changelog |
2 |
| -import org.jetbrains.changelog.markdownToHTML |
3 |
| -import org.jetbrains.intellij.platform.gradle.Constants.Constraints |
4 |
| -import org.jetbrains.intellij.platform.gradle.TestFrameworkType |
5 |
| - |
6 | 1 | plugins {
|
7 |
| - id("java") // Java support |
8 |
| - alias(libs.plugins.kotlin) // Kotlin support |
9 |
| - alias(libs.plugins.intelliJPlatform) // IntelliJ Platform Gradle Plugin |
10 |
| - alias(libs.plugins.changelog) // Gradle Changelog Plugin |
11 |
| - alias(libs.plugins.qodana) // Gradle Qodana Plugin |
12 |
| - alias(libs.plugins.kover) // Gradle Kover Plugin |
| 2 | + id("java") |
| 3 | + id("org.jetbrains.kotlin.jvm") version "1.9.25" |
| 4 | + id("org.jetbrains.intellij") version "1.17.4" |
13 | 5 | }
|
14 | 6 |
|
15 |
| -group = providers.gradleProperty("pluginGroup").get() |
| 7 | +group = "com.github.junkfactory" |
16 | 8 | version = providers.gradleProperty("pluginVersion").get()
|
17 | 9 |
|
18 |
| -// Set the JVM language level used to build the project. |
19 |
| -kotlin { |
20 |
| - jvmToolchain(17) |
21 |
| -} |
22 |
| - |
23 |
| -// Configure project's dependencies |
24 | 10 | repositories {
|
25 |
| - mavenCentral() |
26 |
| - |
27 |
| - // IntelliJ Platform Gradle Plugin Repositories Extension - read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-repositories-extension.html |
28 |
| - intellijPlatform { |
29 |
| - defaultRepositories() |
30 |
| - } |
31 |
| -} |
32 |
| - |
33 |
| -// Dependencies are managed with Gradle version catalog - read more: https://docs.gradle.org/current/userguide/platforms.html#sub:version-catalog |
34 |
| -dependencies { |
35 |
| - testImplementation(libs.junit) |
36 |
| - |
37 |
| - // IntelliJ Platform Gradle Plugin Dependencies Extension - read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html |
38 |
| - intellijPlatform { |
39 |
| - create(providers.gradleProperty("platformType"), providers.gradleProperty("platformVersion")) |
40 |
| - |
41 |
| - // Plugin Dependencies. Uses `platformBundledPlugins` property from the gradle.properties file for bundled IntelliJ Platform plugins. |
42 |
| - bundledPlugins(providers.gradleProperty("platformBundledPlugins").map { it.split(',') }) |
43 |
| - |
44 |
| - // Plugin Dependencies. Uses `platformPlugins` property from the gradle.properties file for plugin from JetBrains Marketplace. |
45 |
| - plugins(providers.gradleProperty("platformPlugins").map { it.split(',') }) |
46 |
| - |
47 |
| - instrumentationTools() |
48 |
| - pluginVerifier() |
49 |
| - zipSigner() |
50 |
| - testFramework(TestFrameworkType.Platform) |
51 |
| - bundledPlugin("com.intellij.java") |
52 |
| - } |
53 |
| -} |
54 |
| - |
55 |
| -// Configure IntelliJ Platform Gradle Plugin - read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-extension.html |
56 |
| -intellijPlatform { |
57 |
| - pluginConfiguration { |
58 |
| - version = providers.gradleProperty("pluginVersion") |
59 |
| - |
60 |
| - // Extract the <!-- Plugin description --> section from README.md and provide for the plugin's manifest |
61 |
| - description = providers.fileContents(layout.projectDirectory.file("README.md")).asText.map { |
62 |
| - val start = "<!-- Plugin description -->" |
63 |
| - val end = "<!-- Plugin description end -->" |
64 |
| - |
65 |
| - with(it.lines()) { |
66 |
| - if (!containsAll(listOf(start, end))) { |
67 |
| - throw GradleException("Plugin description section not found in README.md:\n$start ... $end") |
68 |
| - } |
69 |
| - subList(indexOf(start) + 1, indexOf(end)).joinToString("\n").let(::markdownToHTML) |
70 |
| - } |
71 |
| - } |
72 |
| - |
73 |
| - val changelog = project.changelog // local variable for configuration cache compatibility |
74 |
| - // Get the latest available change notes from the changelog file |
75 |
| - changeNotes = providers.gradleProperty("pluginVersion").map { pluginVersion -> |
76 |
| - with(changelog) { |
77 |
| - renderItem( |
78 |
| - (getOrNull(pluginVersion) ?: getUnreleased()) |
79 |
| - .withHeader(false) |
80 |
| - .withEmptySections(false), |
81 |
| - Changelog.OutputType.HTML, |
82 |
| - ) |
83 |
| - } |
84 |
| - } |
85 |
| - |
86 |
| - ideaVersion { |
87 |
| - sinceBuild = providers.gradleProperty("pluginSinceBuild") |
88 |
| - untilBuild = providers.gradleProperty("pluginUntilBuild") |
89 |
| - } |
90 |
| - } |
91 |
| - |
92 |
| - signing { |
93 |
| - certificateChain = providers.environmentVariable("CERTIFICATE_CHAIN") |
94 |
| - privateKey = providers.environmentVariable("PRIVATE_KEY") |
95 |
| - password = providers.environmentVariable("PRIVATE_KEY_PASSWORD") |
96 |
| - } |
97 |
| - |
98 |
| - publishing { |
99 |
| - token = providers.environmentVariable("PUBLISH_TOKEN") |
100 |
| - // The pluginVersion is based on the SemVer (https://semver.org) and supports pre-release labels, like 2.1.7-alpha.3 |
101 |
| - // Specify pre-release label to publish the plugin in a custom Release Channel automatically. Read more: |
102 |
| - // https://plugins.jetbrains.com/docs/intellij/deployment.html#specifying-a-release-channel |
103 |
| - channels = providers.gradleProperty("pluginVersion").map { listOf(it.substringAfter('-', "").substringBefore('.').ifEmpty { "default" }) } |
104 |
| - } |
105 |
| - |
106 |
| - pluginVerification { |
107 |
| - ides { |
108 |
| - recommended() |
109 |
| - } |
110 |
| - } |
| 11 | + mavenCentral() |
111 | 12 | }
|
112 | 13 |
|
113 |
| -// Configure Gradle Changelog Plugin - read more: https://github.com/JetBrains/gradle-changelog-plugin |
114 |
| -changelog { |
115 |
| - groups.empty() |
116 |
| - repositoryUrl = providers.gradleProperty("pluginRepositoryUrl") |
117 |
| -} |
| 14 | +// Configure Gradle IntelliJ Plugin |
| 15 | +// Read more: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html |
| 16 | +intellij { |
| 17 | + version.set("2024.1.7") |
| 18 | + type.set("IC") // Target IDE Platform |
118 | 19 |
|
119 |
| -// Configure Gradle Kover Plugin - read more: https://github.com/Kotlin/kotlinx-kover#configuration |
120 |
| -kover { |
121 |
| - reports { |
122 |
| - total { |
123 |
| - xml { |
124 |
| - onCheck = true |
125 |
| - } |
126 |
| - } |
127 |
| - } |
| 20 | + plugins.set(listOf("com.intellij.java")) |
128 | 21 | }
|
129 | 22 |
|
130 | 23 | tasks {
|
131 |
| - wrapper { |
132 |
| - gradleVersion = providers.gradleProperty("gradleVersion").get() |
133 |
| - } |
134 |
| - |
135 |
| - publishPlugin { |
136 |
| - dependsOn(patchChangelog) |
137 |
| - } |
138 |
| -} |
139 |
| - |
140 |
| -val runIdeForUiTests by intellijPlatformTesting.runIde.registering { |
141 |
| - task { |
142 |
| - jvmArgumentProviders += CommandLineArgumentProvider { |
143 |
| - listOf( |
144 |
| - "-Drobot-server.port=8082", |
145 |
| - "-Dide.mac.message.dialogs.as.sheets=false", |
146 |
| - "-Djb.privacy.policy.text=<!--999.999-->", |
147 |
| - "-Djb.consents.confirmation.enabled=false", |
148 |
| - ) |
149 |
| - } |
150 |
| - } |
151 |
| - |
152 |
| - plugins { |
153 |
| - robotServerPlugin(Constraints.LATEST_VERSION) |
154 |
| - } |
| 24 | + // Set the JVM compatibility versions |
| 25 | + withType<JavaCompile> { |
| 26 | + sourceCompatibility = "17" |
| 27 | + targetCompatibility = "17" |
| 28 | + } |
| 29 | + withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> { |
| 30 | + kotlinOptions.jvmTarget = "17" |
| 31 | + } |
| 32 | + |
| 33 | + patchPluginXml { |
| 34 | + sinceBuild.set("241") |
| 35 | + untilBuild.set("243.*") |
| 36 | + } |
| 37 | + |
| 38 | + signPlugin { |
| 39 | + certificateChain.set(System.getenv("CERTIFICATE_CHAIN")) |
| 40 | + privateKey.set(System.getenv("PRIVATE_KEY")) |
| 41 | + password.set(System.getenv("PRIVATE_KEY_PASSWORD")) |
| 42 | + } |
| 43 | + |
| 44 | + publishPlugin { |
| 45 | + token.set(System.getenv("PUBLISH_TOKEN")) |
| 46 | + } |
155 | 47 | }
|
0 commit comments