Files
IntelliJ-IdeaVim/scripts/build.gradle.kts
1grzyb1 5fd38b21b3 Improve release process
Our pipeline could mark issues on youtrack as fixed even if they were not in release branch.
Added single script for all pipelines to deremine which commits enetered given release so changelog, whats new and release itself are using exactly same logic
2026-10-09 10:13:18 +02:00

101 lines
3.2 KiB
Kotlin

/*
* Copyright 2003-2023 The IdeaVim authors
*
* Use of this source code is governed by an MIT-style
* license that can be found in the LICENSE.txt file or at
* https://opensource.org/licenses/MIT.
*/
plugins {
java
kotlin("jvm")
application
}
// group 'org.jetbrains.ideavim'
// version 'SNAPSHOT'
repositories {
maven { url = uri("https://cache-redirector.jetbrains.com/repo.maven.apache.org/maven2") }
maven { url = uri("https://jitpack.io") }
}
dependencies {
compileOnly("org.jetbrains.kotlin:kotlin-stdlib:2.4.20")
testImplementation("org.junit.jupiter:junit-jupiter:6.1.3")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
implementation("io.ktor:ktor-client-core:3.6.0")
implementation("io.ktor:ktor-client-cio:3.6.0")
implementation("io.ktor:ktor-client-content-negotiation:3.6.0")
implementation("io.ktor:ktor-serialization-kotlinx-json:3.6.0")
implementation("io.ktor:ktor-client-auth:3.6.0")
implementation("org.eclipse.jgit:org.eclipse.jgit:6.6.0.202305301015-r")
// This is needed for jgit to connect to ssh
implementation("org.eclipse.jgit:org.eclipse.jgit.ssh.apache:7.8.0.202609011348-r")
implementation("com.vdurmont:semver4j:3.1.0")
}
val releaseType: String? by project
kotlin {
compilerOptions {
freeCompilerArgs = listOf("-Xjvm-default=all-compatibility")
}
}
tasks.register("calculateNewVersion", JavaExec::class) {
group = "release"
mainClass.set("scripts.release.CalculateNewVersionKt")
classpath = sourceSets["main"].runtimeClasspath
args = listOf("${rootProject.rootDir}", releaseType ?: "")
}
tasks.register("addReleaseTag", JavaExec::class) {
group = "release"
mainClass.set("scripts.release.AddReleaseTagKt")
classpath = sourceSets["main"].runtimeClasspath
args = listOf(project.version.toString(), rootProject.rootDir.toString(), releaseType ?: "")
}
tasks.register("selectBranch", JavaExec::class) {
group = "release"
mainClass.set("scripts.release.SelectBranchKt")
classpath = sourceSets["main"].runtimeClasspath
args = listOf(project.version.toString(), rootProject.rootDir.toString(), releaseType ?: "")
}
tasks.register("calculateNewEapVersion", JavaExec::class) {
group = "release"
mainClass.set("scripts.release.CalculateNewEapVersionKt")
classpath = sourceSets["main"].runtimeClasspath
args = listOf("${rootProject.rootDir}")
}
tasks.register("calculateNewDevVersion", JavaExec::class) {
group = "release"
mainClass.set("scripts.release.CalculateNewDevVersionKt")
classpath = sourceSets["main"].runtimeClasspath
args = listOf("${rootProject.rootDir}")
}
tasks.register("generateHelp", JavaExec::class) {
group = "other"
description = "Generates the help file that :help opens from the descriptions of the commands"
// The descriptions are collected by HelpProcessor while running KSP over the modules that declare commands
dependsOn(":vim-engine:kspKotlin", ":kspKotlin")
mainClass.set("scripts.help.GenerateHelpKt")
classpath = sourceSets["main"].runtimeClasspath
args = listOf(
"${rootProject.rootDir}/src/main/resources/help/ideavim.txt",
"${rootProject.rootDir}/vim-engine/build/help/engine_help.json",
"${rootProject.rootDir}/build/help/frontend_help.json",
)
}
tasks.test {
useJUnitPlatform()
}