diff --git a/build.gradle.kts b/build.gradle.kts index 778a136b053..8d713908d32 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,7 +7,6 @@ import software.aws.toolkits.gradle.changelog.tasks.GenerateGithubChangeLog plugins { id("base") id("toolkit-changelog") - id("toolkit-git-secrets") id("toolkit-jacoco-report") id("org.jetbrains.gradle.plugin.idea-ext") } @@ -42,7 +41,7 @@ dependencies { aggregateCoverage(project(":ui-tests")) } -tasks.register("runIde") { +tasks.register("runIde") { doFirst { throw GradleException("Use project specific runIde command, i.e. :plugin-toolkit:intellij-standalone:runIde") } diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 45238ea7b2f..0c2f6141727 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -1,13 +1,5 @@ // Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 - -buildscript { - // This has to be here otherwise properties are not loaded and nothing works - val props = `java.util`.Properties() - file("${project.projectDir.parent}/gradle.properties").inputStream().use { props.load(it) } - props.entries.forEach { project.extensions.add(it.key.toString(), it.value) } -} - plugins { `kotlin-dsl` `java-gradle-plugin` diff --git a/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/BuildScriptUtils.kt b/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/BuildScriptUtils.kt index a21655bc4c9..3337013e6f9 100644 --- a/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/BuildScriptUtils.kt +++ b/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/BuildScriptUtils.kt @@ -3,11 +3,18 @@ package software.aws.toolkits.gradle -import org.eclipse.jgit.api.Git import org.gradle.api.JavaVersion +import org.gradle.api.logging.Logging import org.gradle.api.Project import org.gradle.api.provider.Provider +import org.gradle.api.provider.ValueSource +import org.gradle.api.provider.ValueSourceParameters +import org.gradle.process.ExecOperations import software.aws.toolkits.gradle.intellij.IdeVersions +import java.io.ByteArrayOutputStream +import java.io.OutputStream +import java.nio.charset.Charset +import javax.inject.Inject import org.jetbrains.kotlin.gradle.dsl.KotlinVersion as KotlinVersionEnum /** @@ -42,21 +49,37 @@ fun Project.withCurrentProfileName(consumer: (String) -> T): Provider { + @get:Inject + abstract val execOperations: ExecOperations - buildString { - append(currentShortHash) + override fun obtain(): String { + return try { + val output = ByteArrayOutputStream() + execOperations.exec { + commandLine("git", "rev-parse", "--short", "HEAD") + standardOutput = output + } + val currentShortHash = String(output.toByteArray(), Charset.defaultCharset()) + + val isDirty = execOperations.exec { + commandLine("git", "status", "-s") + standardOutput = OutputStream.nullOutputStream() + }.exitValue != 0 - if (isDirty) { - append(".modified") + buildString { + append(currentShortHash) + + if (isDirty) { + append(".modified") + } } - } - } catch(e: Exception) { - logger.warn("Could not determine current commit", e) + } catch(e: Exception) { + Logging.getLogger(GitHashValueSource::class.java).warn("Could not determine current commit", e) - "unknownCommit" + "unknownCommit" + } } +} + +fun Project.buildMetadata() = providers.of(GitHashValueSource::class.java) {} diff --git a/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/ExtractFlareTask.kt b/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/ExtractFlareTask.kt new file mode 100644 index 00000000000..169bd8a6c61 --- /dev/null +++ b/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/ExtractFlareTask.kt @@ -0,0 +1,44 @@ +// Copyright 2025 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +package software.aws.toolkits.gradle + +import org.gradle.api.DefaultTask +import org.gradle.api.file.ArchiveOperations +import org.gradle.api.file.ConfigurableFileCollection +import org.gradle.api.file.DirectoryProperty +import org.gradle.api.file.FileSystemOperations +import org.gradle.api.tasks.InputFiles +import org.gradle.api.tasks.OutputDirectory +import org.gradle.api.tasks.TaskAction +import javax.inject.Inject + +abstract class ExtractFlareTask @Inject constructor( + private val archiveOps: ArchiveOperations, + private var fs: FileSystemOperations +) : DefaultTask() { + @get:InputFiles + abstract val zipFiles: ConfigurableFileCollection + + @get:OutputDirectory + abstract val outputDir: DirectoryProperty + + @TaskAction + fun extract() { + val destDir = outputDir.get().asFile + destDir.deleteRecursively() + destDir.mkdirs() + + zipFiles.filter { it.name.endsWith(".zip") }.forEach { zipFile -> + logger.info("Extracting flare from $zipFile") + fs.copy { + outputDir.file(zipFile.parentFile.name).get().asFile.createNewFile() + from(archiveOps.zipTree(zipFile)) { + include("*.js") + include("*.txt") + } + into(destDir) + } + } + } +} diff --git a/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/changelog/tasks/ChangeLogTask.kt b/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/changelog/tasks/ChangeLogTask.kt index bd336edc0f7..d355c115543 100644 --- a/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/changelog/tasks/ChangeLogTask.kt +++ b/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/changelog/tasks/ChangeLogTask.kt @@ -12,8 +12,7 @@ import org.gradle.api.tasks.Internal import software.aws.toolkits.gradle.changelog.GitStager abstract class ChangeLogTask : DefaultTask() { - @Internal - protected val git = GitStager.create(project.rootDir) + fun git() = GitStager.create(project.rootDir) @InputDirectory val changesDirectory: DirectoryProperty = project.objects.directoryProperty().convention(project.rootProject.layout.projectDirectory.dir(".changes")) diff --git a/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/changelog/tasks/CreateRelease.kt b/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/changelog/tasks/CreateRelease.kt index 4935e507613..6b5af11febb 100644 --- a/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/changelog/tasks/CreateRelease.kt +++ b/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/changelog/tasks/CreateRelease.kt @@ -27,7 +27,7 @@ open class CreateRelease @Inject constructor(projectLayout: ProjectLayout) : Cha @Input @Optional - val issuesUrl: Provider = project.objects.property(String::class.java).convention("https://github.com/aws/aws-toolkit-jetbrains/issues") + val issuesUrl: Provider = project.objects.property(String::class.java).convention("https://github.com/aws/aws-toolkit-jetbrains/issues") @OutputFile val releaseFile: RegularFileProperty = project.objects.fileProperty().convention(changesDirectory.file(releaseVersion.map { "$it.json" })) @@ -45,6 +45,7 @@ open class CreateRelease @Inject constructor(projectLayout: ProjectLayout) : Cha val creator = ReleaseCreator(releaseEntries.files, releaseFile.get().asFile, logger) creator.create(releaseVersion.get(), releaseDate) + val git = git() if (git != null) { git.stage(releaseFile.get().asFile.absoluteFile) git.stage(nextReleaseDirectory.get().asFile.absoluteFile) diff --git a/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/changelog/tasks/GenerateChangeLog.kt b/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/changelog/tasks/GenerateChangeLog.kt index e1ec2d4cc49..04735dacf6e 100644 --- a/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/changelog/tasks/GenerateChangeLog.kt +++ b/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/changelog/tasks/GenerateChangeLog.kt @@ -18,7 +18,7 @@ import software.aws.toolkits.gradle.changelog.JetBrainsWriter abstract class GenerateChangeLog(private val shouldStage: Boolean) : ChangeLogTask() { @Input @Optional - val repoUrl: Provider = project.objects.property(String::class.java).convention("https://github.com/aws/aws-toolkit-jetbrains") + val repoUrl: Provider = project.objects.property(String::class.java).convention("https://github.com/aws/aws-toolkit-jetbrains") @Input val includeUnreleased: Property = project.objects.property(Boolean::class.java).convention(false) @@ -46,7 +46,7 @@ abstract class GenerateChangeLog(private val shouldStage: Boolean) : ChangeLogTa generator.close() if (shouldStage) { - git?.stage(changeLogFile.get().asFile) + git()?.stage(changeLogFile.get().asFile) } } diff --git a/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/changelog/tasks/NewChange.kt b/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/changelog/tasks/NewChange.kt index 0afde8ee7f8..e9e370a8b17 100644 --- a/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/changelog/tasks/NewChange.kt +++ b/buildSrc/src/main/kotlin/software/aws/toolkits/gradle/changelog/tasks/NewChange.kt @@ -19,7 +19,7 @@ open class NewChange : ChangeLogTask() { @TaskAction fun create() { val changeType = if (project.hasProperty("changeType")) { - (project.property("changeType") as? String?)?.toUpperCase()?.let { ChangeType.valueOf(it) } + (project.property("changeType") as? String?)?.uppercase()?.let { ChangeType.valueOf(it) } } else defaultChangeType val description = if (project.hasProperty("description")) { project.property("description") as? String? @@ -30,7 +30,7 @@ open class NewChange : ChangeLogTask() { changeType != null && description != null -> createChange(changeType, description) else -> promptForChange(input, changeType) } - git?.stage(file) + git()?.stage(file) } private fun promptForChange(input: Scanner, existingChangeType: ChangeType?): File { diff --git a/buildSrc/src/main/kotlin/toolkit-git-secrets.gradle.kts b/buildSrc/src/main/kotlin/toolkit-git-secrets.gradle.kts deleted file mode 100644 index c5588d90695..00000000000 --- a/buildSrc/src/main/kotlin/toolkit-git-secrets.gradle.kts +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -import de.undercouch.gradle.tasks.download.Download -import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform - -plugins { - id("de.undercouch.download") -} - -val downloadGitSecrets = tasks.register("downloadGitSecrets") { - src("https://raw.githubusercontent.com/awslabs/git-secrets/master/git-secrets") - dest("$buildDir/git-secrets") - onlyIfModified(true) - useETag(true) -} - -val gitSecrets = tasks.register("gitSecrets") { - onlyIf { - !DefaultNativePlatform.getCurrentOperatingSystem().isWindows - } - - dependsOn(downloadGitSecrets) - workingDir(project.rootDir) - val path = "$buildDir${File.pathSeparator}" - val patchendEnv = environment.apply { replace("PATH", path + getOrDefault("PATH", "")) } - environment = patchendEnv - - commandLine("/bin/sh", "$buildDir/git-secrets", "--register-aws") - - // cleaner than having multiple separate exec tasks - doLast { - exec { - workingDir(project.rootDir) - commandLine("git", "config", "--add", "secrets.allowed", "123456789012") - } - - exec { - workingDir(project.rootDir) - environment = patchendEnv - commandLine("/bin/sh", "$buildDir/git-secrets", "--scan") - } - } -} - -tasks.findByName("check")?.let { - it.dependsOn(gitSecrets) -} diff --git a/buildSrc/src/main/kotlin/toolkit-integration-testing.gradle.kts b/buildSrc/src/main/kotlin/toolkit-integration-testing.gradle.kts index 0c9327281dd..4749f60f3aa 100644 --- a/buildSrc/src/main/kotlin/toolkit-integration-testing.gradle.kts +++ b/buildSrc/src/main/kotlin/toolkit-integration-testing.gradle.kts @@ -55,8 +55,8 @@ val testJar = tasks.named("testJar").configure { idea { module { - testSourceDirs = testSourceDirs + integrationTests.java.srcDirs - testResourceDirs = testResourceDirs + integrationTests.resources.srcDirs + testSources.from(integrationTests.java.srcDirs) + testResources.from(integrationTests.resources.srcDirs) } } val integrationTestConfiguration: Test.() -> Unit = { diff --git a/buildSrc/src/main/kotlin/toolkit-publishing-conventions.gradle.kts b/buildSrc/src/main/kotlin/toolkit-publishing-conventions.gradle.kts index f39c251dbeb..675e180ea14 100644 --- a/buildSrc/src/main/kotlin/toolkit-publishing-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/toolkit-publishing-conventions.gradle.kts @@ -1,8 +1,5 @@ // Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 -import org.jetbrains.intellij.platform.gradle.IntelliJPlatformType -import org.jetbrains.intellij.platform.gradle.tasks.BuildPluginTask -import org.jetbrains.intellij.platform.gradle.tasks.PatchPluginXmlTask import org.jetbrains.intellij.platform.gradle.tasks.VerifyPluginTask import software.aws.toolkits.gradle.buildMetadata import software.aws.toolkits.gradle.intellij.IdeVersions @@ -18,19 +15,13 @@ val toolkitVersion: String by project // please check changelog generation logic if this format is changed version = "$toolkitVersion.${ideProfile.shortName}" -// attach the current commit hash on local builds -if (!project.isCi()) { - val buildMetadata = buildMetadata() - tasks.withType().configureEach { - pluginVersion.set("${project.version}+$buildMetadata") +intellijPlatform { + pluginConfiguration { + if (isCi()) { + version.set(buildMetadata().map { "${project.version}+$it" }) + } } - tasks.named("buildPlugin") { - archiveClassifier.set(buildMetadata) - } -} - -intellijPlatform { publishing { val publishToken: String by project val publishChannel: String by project diff --git a/buildSrc/src/main/kotlin/toolkit-testing.gradle.kts b/buildSrc/src/main/kotlin/toolkit-testing.gradle.kts index ca37a88d9c1..166fd7f4169 100644 --- a/buildSrc/src/main/kotlin/toolkit-testing.gradle.kts +++ b/buildSrc/src/main/kotlin/toolkit-testing.gradle.kts @@ -10,6 +10,7 @@ plugins { id("jacoco") id("org.gradle.test-retry") id("com.adarshr.test-logger") + id("jacoco-report-aggregation") } // TODO: https://github.com/gradle/gradle/issues/15383 @@ -94,27 +95,3 @@ tasks.withType().configureEach { isIncludeNoLocationClasses = true } } - -// Jacoco configs taken from official Gradle docs: https://docs.gradle.org/current/userguide/structuring_software_products.html - -// Do not generate reports for individual projects, see toolkit-jacoco-report plugin -tasks.jacocoTestReport.configure { - enabled = false -} - -// Share the coverage data to be aggregated for the whole product -// this can be removed once we're using jvm-test-suites properly -configurations.register("coverageDataElements") { - isVisible = false - isCanBeResolved = false - isCanBeConsumed = true - extendsFrom(configurations.implementation.get()) - attributes { - attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME)) - attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.DOCUMENTATION)) - attribute(DocsType.DOCS_TYPE_ATTRIBUTE, objects.named("jacoco-coverage-data")) - } - tasks.withType().configureEach { - outgoing.artifact(extensions.getByType().destinationFile!!) - } -} diff --git a/gradle.properties b/gradle.properties index 200743ae951..fa9ce17d186 100644 --- a/gradle.properties +++ b/gradle.properties @@ -29,3 +29,6 @@ kotlin.build.report.output=file # don't bundle Kotlin stdlib with plugin kotlin.stdlib.default.dependency=false + +org.gradle.configuration-cache=true +#org.gradle.configuration-cache.problems=warn diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index a4b76b9530d..9bbc975c742 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37f853b1c84..2a84e188b85 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index f5feea6d6b1..faf93008b77 100755 --- a/gradlew +++ b/gradlew @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. diff --git a/plugins/amazonq/build.gradle.kts b/plugins/amazonq/build.gradle.kts index 2cc4557b25e..6245e9a1a7f 100644 --- a/plugins/amazonq/build.gradle.kts +++ b/plugins/amazonq/build.gradle.kts @@ -4,8 +4,18 @@ import com.fasterxml.jackson.databind.DeserializationFeature import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper import de.undercouch.gradle.tasks.download.Download +import org.gradle.api.DefaultTask +import org.gradle.api.file.ConfigurableFileCollection +import org.gradle.api.file.DirectoryProperty +import org.gradle.api.file.RegularFileProperty +import org.gradle.api.tasks.InputFile +import org.gradle.api.tasks.InputFiles +import org.gradle.api.tasks.OutputDirectory +import org.gradle.api.tasks.TaskAction import org.jetbrains.intellij.platform.gradle.tasks.PrepareSandboxTask import software.aws.toolkits.gradle.changelog.tasks.GeneratePluginChangeLog +import java.net.URI +import java.net.URL plugins { id("toolkit-publishing-conventions") @@ -86,52 +96,80 @@ data class FlareContent( val url: String, ) -val downloadFlareArtifacts by tasks.registering(Download::class) { - dependsOn(downloadFlareManifest) - inputs.files(downloadFlareManifest) - - val manifestFile = downloadFlareManifest.map { it.outputFiles.first() } - val manifest = manifestFile.map { jacksonObjectMapper().disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES).readValue(it.readText(), FlareManifest::class.java) } - - // use darwin-aarch64 because its the smallest and we're going to throw away everything platform specific - val latest = manifest.map { it.versions.first() } - val latestVersion = latest.map { it.serverVersion } - val licensesUrl = latest.map { it.thirdPartyLicenses } - val darwin = latest.map { it.targets.first { target -> target.platform == "darwin" && target.arch == "arm64" } } - val contentUrls = darwin.map { it.contents.map { content -> content.url } } - - val destination = layout.buildDirectory.dir(latestVersion.map { "flare/$it" }) - outputs.dir(destination) +abstract class DownloadFlareArtifactsTask : DefaultTask() { + @get:InputFile + abstract val manifestFile: RegularFileProperty + + @get:OutputDirectory + abstract val outputDir: DirectoryProperty + + @TaskAction + fun download() { + val manifest = jacksonObjectMapper() + .disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES) + .readValue(manifestFile.get().asFile.readText(), FlareManifest::class.java) + + val latest = manifest.versions.first() + val darwin = latest.targets.first { it.platform == "darwin" && it.arch == "arm64" } + val urls = darwin.contents.map { it.url } + latest.thirdPartyLicenses + + val destDir = outputDir.get().asFile + destDir.mkdirs() + + urls.forEach { url -> + val uri = URI(url) + val fileName = uri.path.substringAfterLast('/') + val destFile = destDir.resolve(fileName) + if (!destFile.exists()) { + logger.info("Downloading $url to $destFile") + uri.toURL().openStream().use { input -> + destFile.outputStream().use { output -> + input.copyTo(output) + } + } + } + } + } +} - src(contentUrls.zip(licensesUrl) { left, right -> left + right}) - dest(destination) - onlyIfModified(true) - useETag(true) +val downloadFlareArtifacts by tasks.registering(DownloadFlareArtifactsTask::class) { + dependsOn(downloadFlareManifest) + manifestFile.set(layout.buildDirectory.file("flare/manifest.json")) + outputDir.set(layout.buildDirectory.dir("flare/artifacts")) } -val prepareBundledFlare by tasks.registering(Copy::class) { - dependsOn(downloadFlareArtifacts) - inputs.files(downloadFlareArtifacts) - - val dest = layout.buildDirectory.dir("tmp/extractFlare") - into(dest) - from(downloadFlareArtifacts.map { it.outputFiles.filterNot { file -> file.name.endsWith(".zip") } }) - - doLast { - copy { - into(dest) - includeEmptyDirs = false - downloadFlareArtifacts.get().outputFiles.filter { it.name.endsWith(".zip") }.forEach { - dest.get().file(it.parentFile.name).asFile.createNewFile() - from(zipTree(it)) { +abstract class ExtractFlareTask : DefaultTask() { + @get:InputFiles + abstract val zipFiles: ConfigurableFileCollection + + @get:OutputDirectory + abstract val outputDir: DirectoryProperty + + @TaskAction + fun extract() { + val destDir = outputDir.get().asFile + destDir.deleteRecursively() + destDir.mkdirs() + + zipFiles.filter { it.name.endsWith(".zip") }.forEach { zipFile -> + logger.info("Extracting flare from ${zipFile}") + project.copy { + from(project.zipTree(zipFile)) { include("*.js") include("*.txt") } + into(destDir) } } } } +val prepareBundledFlare by tasks.registering(ExtractFlareTask::class) { + dependsOn(downloadFlareArtifacts) + zipFiles.from(downloadFlareArtifacts.map { it.outputDir.asFileTree }) + outputDir.set(layout.buildDirectory.dir("tmp/extractFlare")) +} + tasks.withType().configureEach { from(file("contrib/QCT-Maven-6-16.jar")) { into(intellijPlatform.projectName.map { "$it/lib" }) diff --git a/plugins/core/resources/build.gradle.kts b/plugins/core/resources/build.gradle.kts index 658da9abc66..b6c6b9b3a1a 100644 --- a/plugins/core/resources/build.gradle.kts +++ b/plugins/core/resources/build.gradle.kts @@ -31,9 +31,6 @@ val download = tasks.register("downloadResources") { src(listOf("https://idetoolkits.amazonwebservices.com/endpoints.json")) onlyIfModified(true) useETag(true) - doFirst { - mkdir(resourcesDir) - } } tasks.processResources { diff --git a/plugins/toolkit/jetbrains-core/build.gradle.kts b/plugins/toolkit/jetbrains-core/build.gradle.kts index dc32bdd361c..d5c07ec084c 100644 --- a/plugins/toolkit/jetbrains-core/build.gradle.kts +++ b/plugins/toolkit/jetbrains-core/build.gradle.kts @@ -55,8 +55,9 @@ tasks.compileJava { PatchPluginXmlTask.register(project) val patchPluginXml = tasks.named("patchPluginXml") patchPluginXml.configure { - val buildSuffix = if (!project.isCi()) "+${buildMetadata()}" else "" - pluginVersion.set("$toolkitVersion.${ideProfile.shortName}$buildSuffix") + val buildSuffix = buildMetadata().map { if (!project.isCi()) "+${it}" else "" } + pluginVersion.set(buildSuffix.map { "$toolkitVersion.${ideProfile.shortName}$it" }) + sinceBuild.set(ideProfile.sinceVersion) untilBuild.set(ideProfile.untilVersion) } @@ -79,8 +80,8 @@ tasks.integrationTest { } val gatewayPluginXml = tasks.register("pluginXmlForGateway") { - val buildSuffix = if (!project.isCi()) "+${buildMetadata()}" else "" - pluginVersion.set("GW-$toolkitVersion-${ideProfile.shortName}$buildSuffix") + val buildSuffix = buildMetadata().map { if (!project.isCi()) "+${it}" else "" } + pluginVersion.set(buildSuffix.map { "GW-$toolkitVersion-${ideProfile.shortName}$it" }) sinceBuild.set(ideProfile.sinceVersion) untilBuild.set(ideProfile.untilVersion) } diff --git a/settings.gradle.kts b/settings.gradle.kts index d54755d69d3..c42d13325fd 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -40,7 +40,7 @@ pluginManagement { } plugins { - id("com.github.burrunan.s3-build-cache") version "1.5" + id("com.github.burrunan.s3-build-cache") version "1.9.3" id("com.gradle.develocity") version "3.17.6" id("org.jetbrains.intellij.platform.settings") version "2.7.1" }