From f054707392ad9130a2e1c7ab2de3885564677905 Mon Sep 17 00:00:00 2001 From: pq Date: Wed, 25 Mar 2026 08:52:13 -0700 Subject: [PATCH 1/2] [build] add kokoro dev channel build --- kokoro/macos_external/continuous.cfg | 1 + kokoro/macos_external/kokoro_build.sh | 14 +++++++++ kokoro/macos_external/kokoro_release.sh | 13 ++++++++ kokoro/macos_external/presubmit.cfg | 1 + kokoro/macos_external/release.cfg | 8 +++++ third_party/build.gradle.kts | 26 +++++++++++++++- third_party/tool/kokoro/build.sh | 11 +++++++ third_party/tool/kokoro/deploy.sh | 40 +++++++++++++++++++++++++ third_party/tool/kokoro/setup.sh | 13 ++++++++ 9 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 kokoro/macos_external/continuous.cfg create mode 100644 kokoro/macos_external/kokoro_build.sh create mode 100644 kokoro/macos_external/kokoro_release.sh create mode 100644 kokoro/macos_external/presubmit.cfg create mode 100644 kokoro/macos_external/release.cfg create mode 100644 third_party/tool/kokoro/build.sh create mode 100644 third_party/tool/kokoro/deploy.sh create mode 100644 third_party/tool/kokoro/setup.sh diff --git a/kokoro/macos_external/continuous.cfg b/kokoro/macos_external/continuous.cfg new file mode 100644 index 000000000..5170a51d7 --- /dev/null +++ b/kokoro/macos_external/continuous.cfg @@ -0,0 +1 @@ +build_file: "dart-intellij-third-party/kokoro/macos_external/kokoro_build.sh" diff --git a/kokoro/macos_external/kokoro_build.sh b/kokoro/macos_external/kokoro_build.sh new file mode 100644 index 000000000..19bd5d42f --- /dev/null +++ b/kokoro/macos_external/kokoro_build.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# This script should execute after a commit. +date +echo "Automatic build started" + +# Fail on any error. +set -e + + +# Code under repo is checked out to ${KOKORO_ARTIFACTS_DIR}/github. +cd ${KOKORO_ARTIFACTS_DIR}/github/dart-intellij-third-party + +./third_party/tool/kokoro/build.sh diff --git a/kokoro/macos_external/kokoro_release.sh b/kokoro/macos_external/kokoro_release.sh new file mode 100644 index 000000000..629d34ef0 --- /dev/null +++ b/kokoro/macos_external/kokoro_release.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +# This script should execute during the scheduled builds. +date +echo "Automatic build started" + +# Fail on any error. +set -e + +# Code under repo is checked out to ${KOKORO_ARTIFACTS_DIR}/github. +cd ${KOKORO_ARTIFACTS_DIR}/github/dart-intellij-third-party + +./third_party/tool/kokoro/deploy.sh diff --git a/kokoro/macos_external/presubmit.cfg b/kokoro/macos_external/presubmit.cfg new file mode 100644 index 000000000..5170a51d7 --- /dev/null +++ b/kokoro/macos_external/presubmit.cfg @@ -0,0 +1 @@ +build_file: "dart-intellij-third-party/kokoro/macos_external/kokoro_build.sh" diff --git a/kokoro/macos_external/release.cfg b/kokoro/macos_external/release.cfg new file mode 100644 index 000000000..291ad723b --- /dev/null +++ b/kokoro/macos_external/release.cfg @@ -0,0 +1,8 @@ +build_file: "dart-intellij-third-party/kokoro/macos_external/kokoro_release.sh" + +action { + define_artifacts { + regex: "github/dart-intellij-third-party/third_party/build/distributions/*.zip" + strip_prefix: "github/dart-intellij-third-party/third_party/build" + } +} diff --git a/third_party/build.gradle.kts b/third_party/build.gradle.kts index 3ddb3a239..f6a63a7b9 100644 --- a/third_party/build.gradle.kts +++ b/third_party/build.gradle.kts @@ -1,8 +1,11 @@ +import ideaVersion import org.jetbrains.changelog.Changelog import org.jetbrains.intellij.platform.gradle.IntelliJPlatformType import org.jetbrains.intellij.platform.gradle.TestFrameworkType import org.jetbrains.intellij.platform.gradle.models.ProductRelease import org.jetbrains.intellij.platform.gradle.tasks.VerifyPluginTask +import java.time.LocalDate +import java.time.format.DateTimeFormatter // Specify UTF-8 for all compilations so we avoid Windows-1252. allprojects { @@ -34,13 +37,34 @@ repositories { intellijPlatform { pluginConfiguration { + var pluginVersion = providers.gradleProperty("pluginVersion").toString() + + if (project.hasProperty("dev")) { + val latestVersion = changelog.getLatest().version + val majorVersion = latestVersion.substringBefore('.').toInt() + val nextMajorVersion = majorVersion + 1 + val datestamp = DateTimeFormatter.ofPattern("yyyyMMdd").format(LocalDate.now()) + pluginVersion = "$nextMajorVersion.0.0-dev.$datestamp" + + val commitHash = System.getenv("KOKORO_GIT_COMMIT") + if (commitHash is String) { + val shortCommitHash = commitHash.take(7) + pluginVersion = "$pluginVersion-$shortCommitHash" + } + } + + version = pluginVersion name = providers.gradleProperty("pluginName") id = providers.gradleProperty("pluginId") - version = providers.gradleProperty("pluginVersion") + ideaVersion { sinceBuild = providers.gradleProperty("pluginSinceBuild") untilBuild = providers.gradleProperty("pluginUntilBuild") } + + println("plugin version: $pluginVersion") + println("ideaVersion: $ideaVersion") + changeNotes = provider { project.changelog.renderItem(project.changelog.getLatest(), Changelog.OutputType.HTML) } diff --git a/third_party/tool/kokoro/build.sh b/third_party/tool/kokoro/build.sh new file mode 100644 index 000000000..fa111d34c --- /dev/null +++ b/third_party/tool/kokoro/build.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +source ./tool/kokoro/setup.sh +setup + +echo "kokoro build start" + +cd third_party +./gradlew buildPlugin + +echo "kokoro build finished" diff --git a/third_party/tool/kokoro/deploy.sh b/third_party/tool/kokoro/deploy.sh new file mode 100644 index 000000000..f16d7b610 --- /dev/null +++ b/third_party/tool/kokoro/deploy.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +source ./third_party/tool/kokoro/setup.sh +setup + +echo "kokoro build start" + +cd third_party +VERSION=$(grep 'pluginVersion' gradle.properties | cut -d'=' -f2 | tr -d ' ') + +./gradlew buildPlugin + +echo "kokoro build finished" + +echo "kokoro deploy start" + +DART_KEYSTORE_ID=74840 +DART_KEYSTORE_NAME=jetbrains-plugin-upload-auth-token + +KOKORO_TOKEN_FILE="${KOKORO_KEYSTORE_DIR}/${DART_KEYSTORE_ID}_${DART_KEYSTORE_NAME}" +if [ ! -f "$KOKORO_TOKEN_FILE" ]; then + echo "Error: Keystore token file not found at $KOKORO_TOKEN_FILE" + exit 1 +fi +TOKEN=$(cat "$KOKORO_TOKEN_FILE") + +ZIP_FILE="build/distributions/Dart-$VERSION.zip" +if [ ! -f "$ZIP_FILE" ]; then + echo "Error: Zip file not found at $ZIP_FILE" + exit 1 +fi + +echo "Uploading $ZIP_FILE to JetBrains Marketplace..." +curl -i \ + --header "Authorization: Bearer $TOKEN" \ + -F pluginId=6351 \ + -F file=@$ZIP_FILE \ + https://plugins.jetbrains.com/plugin/uploadPlugin + +echo "kokoro deploy finished" diff --git a/third_party/tool/kokoro/setup.sh b/third_party/tool/kokoro/setup.sh new file mode 100644 index 000000000..a48e9fd2c --- /dev/null +++ b/third_party/tool/kokoro/setup.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +setup() { + # Fail on any error. + set -e + + java --version + + # Enable verbose output for Gradle + export JAVA_OPTS=" -Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Addresses=true" + + ./gradlew --version +} From 59cfff3b96c5649bf1e02eba7b5942f04ebdbe64 Mon Sep 17 00:00:00 2001 From: pq Date: Wed, 25 Mar 2026 10:17:37 -0700 Subject: [PATCH 2/2] +++ --- third_party/build.gradle.kts | 7 ++++++- third_party/tool/kokoro/build.sh | 2 +- third_party/tool/kokoro/deploy.sh | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/third_party/build.gradle.kts b/third_party/build.gradle.kts index f6a63a7b9..a5c64f61e 100644 --- a/third_party/build.gradle.kts +++ b/third_party/build.gradle.kts @@ -1,4 +1,3 @@ -import ideaVersion import org.jetbrains.changelog.Changelog import org.jetbrains.intellij.platform.gradle.IntelliJPlatformType import org.jetbrains.intellij.platform.gradle.TestFrameworkType @@ -181,3 +180,9 @@ tasks.register("printCompileClasspath") { println("--- End Compile Classpath ---") } } + +tasks.register("printVersion") { + doLast { + println(version) + } +} diff --git a/third_party/tool/kokoro/build.sh b/third_party/tool/kokoro/build.sh index fa111d34c..a0ef524ab 100644 --- a/third_party/tool/kokoro/build.sh +++ b/third_party/tool/kokoro/build.sh @@ -1,6 +1,6 @@ #!/bin/bash -source ./tool/kokoro/setup.sh +source ./third_party/tool/kokoro/setup.sh setup echo "kokoro build start" diff --git a/third_party/tool/kokoro/deploy.sh b/third_party/tool/kokoro/deploy.sh index f16d7b610..514e35e35 100644 --- a/third_party/tool/kokoro/deploy.sh +++ b/third_party/tool/kokoro/deploy.sh @@ -6,9 +6,9 @@ setup echo "kokoro build start" cd third_party -VERSION=$(grep 'pluginVersion' gradle.properties | cut -d'=' -f2 | tr -d ' ') -./gradlew buildPlugin +VERSION=$(./gradlew -q printVersion) +./gradlew buildPlugin -Pdev echo "kokoro build finished"