diff --git a/.github/workflows/kotlin-ci.yml b/.github/workflows/kotlin-ci.yml index af36a1d..02750b3 100644 --- a/.github/workflows/kotlin-ci.yml +++ b/.github/workflows/kotlin-ci.yml @@ -8,13 +8,10 @@ on: jobs: build-kotlin-plugin: - name: 'Build (matrix: Java ${{ matrix.java-version }})' + name: 'Build (Java 17)' runs-on: ubuntu-latest permissions: contents: read - strategy: - matrix: - java-version: [11, 17] steps: - name: Checkout repository @@ -22,11 +19,11 @@ jobs: with: fetch-depth: 0 - - name: Set up JDK ${{ matrix.java-version }} + - name: Set up JDK 17 uses: actions/setup-java@v4 with: distribution: temurin - java-version: ${{ matrix.java-version }} + java-version: 17 - name: Cache Gradle uses: actions/cache@v4 @@ -35,29 +32,28 @@ jobs: ~/.gradle/caches ~/.gradle/wrapper ide-plugins/.gradle - key: gradle-${{ matrix.java-version }}-${{ hashFiles('ide-plugins/**/*.gradle*','ide-plugins/**/gradle-wrapper.properties') }} + key: gradle-17-${{ hashFiles('ide-plugins/**/*.gradle*','ide-plugins/**/gradle-wrapper.properties') }} restore-keys: | - gradle-${{ matrix.java-version }}- + gradle-17- - - name: Make wrapper executable - run: chmod +x ./gradlew + - name: Setup Gradle wrapper if missing + run: | + if [ ! -f gradlew ] || [ ! -f gradle/wrapper/gradle-wrapper.jar ]; then + echo "Setting up Gradle wrapper for Gradle 9.2.0..." + cd /tmp + curl -L -s -o gradle-9.2.0.zip https://services.gradle.org/distributions/gradle-9.2.0-bin.zip + unzip -q gradle-9.2.0.zip + cd $GITHUB_WORKSPACE/ide-plugins + /tmp/gradle-9.2.0/bin/gradle wrapper --gradle-version 9.2.0 + chmod +x gradlew + echo "Wrapper installed" + fi working-directory: ide-plugins - name: Print Gradle info (for debugging) run: ./gradlew --no-daemon --version working-directory: ide-plugins - - name: Run diagnostics script (prints wrapper and kotlin plugin references) - run: | - mkdir -p ../out - ./inspect_gradle_kotlin_versions.sh > ../out/ci-diagnostics.txt || true - working-directory: ide-plugins - - name: Upload diagnostics - uses: actions/upload-artifact@v4 - with: - name: ci-diagnostics-java-${{ matrix.java-version }} - path: out/ci-diagnostics.txt - - name: Full build with stacktrace (capture to file) env: GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx3g" @@ -68,7 +64,7 @@ jobs: - name: Upload build log uses: actions/upload-artifact@v4 with: - name: gradle-build-log-java-${{ matrix.java-version }} + name: gradle-build-log-java-17 path: gradle-build.log - name: Build Kotlin plugin subproject if present @@ -90,7 +86,7 @@ jobs: - name: Upload kotlin-subproject/build logs if present uses: actions/upload-artifact@v4 with: - name: kotlin-subproject-logs-java-${{ matrix.java-version }} + name: kotlin-subproject-logs-java-17 path: | kotlin-subproject-build.log assemble.log diff --git a/.gitignore b/.gitignore index b836cdd..35013e7 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,7 @@ __pycache__ # Gradle build artifacts ide-plugins/.gradle/ ide-plugins/build/ +# Gradle wrapper files (generated on first run) +ide-plugins/gradle/wrapper/gradle-wrapper.jar +ide-plugins/gradlew +ide-plugins/gradlew.bat diff --git a/ide-plugins/build.gradle.kts b/ide-plugins/build.gradle.kts index b0685f2..83cd7be 100644 --- a/ide-plugins/build.gradle.kts +++ b/ide-plugins/build.gradle.kts @@ -1,7 +1,7 @@ plugins { id("java") - id("org.jetbrains.kotlin.jvm") version "1.9.0" - id("org.jetbrains.intellij") version "1.15.0" + id("org.jetbrains.kotlin.jvm") version "2.2.0" + id("org.jetbrains.intellij.platform") version "2.10.4" } group = "com.picocode" @@ -9,17 +9,19 @@ version = "0.2.0" repositories { mavenCentral() + intellijPlatform { + defaultRepositories() + } } dependencies { implementation("com.google.code.gson:gson:2.10.1") implementation("org.java-websocket:Java-WebSocket:1.5.3") -} - -intellij { - version.set("2023.1") - type.set("IC") // IntelliJ IDEA Community Edition - plugins.set(listOf()) + + intellijPlatform { + intellijIdeaCommunity("2023.1") + bundledPlugin("com.intellij.java") + } } tasks { @@ -29,21 +31,8 @@ tasks { } withType { - kotlinOptions.jvmTarget = "17" - } - - patchPluginXml { - sinceBuild.set("231") - untilBuild.set("241.*") - } - - signPlugin { - certificateChain.set(System.getenv("CERTIFICATE_CHAIN")) - privateKey.set(System.getenv("PRIVATE_KEY")) - password.set(System.getenv("PRIVATE_KEY_PASSWORD")) - } - - publishPlugin { - token.set(System.getenv("PUBLISH_TOKEN")) + compilerOptions { + jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17) + } } } diff --git a/ide-plugins/gradle/wrapper/gradle-wrapper.properties b/ide-plugins/gradle/wrapper/gradle-wrapper.properties index 3fa8f86..bad7c24 100644 --- a/ide-plugins/gradle/wrapper/gradle-wrapper.properties +++ b/ide-plugins/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/ide-plugins/gradlew b/ide-plugins/gradlew deleted file mode 100755 index e5e46ad..0000000 --- a/ide-plugins/gradlew +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -# Gradle wrapper script - -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' -APP_NAME="Gradle" -APP_BASE_NAME=$(basename "$0") - -# Resolve links -PRG="$0" -while [ -h "$PRG" ] ; do - ls=$(ls -ld "$PRG") - link=$(expr "$ls" : '.*-> \(.*\)$') - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=$(dirname "$PRG")"/$link" - fi -done - -SAVED="$(pwd)" -cd "$(dirname \"$PRG\")/" >/dev/null -APP_HOME="$(pwd -P)" -cd "$SAVED" >/dev/null - -exec gradle "$@" diff --git a/ide-plugins/inspect_gradle_kotlin_versions.sh b/ide-plugins/inspect_gradle_kotlin_versions.sh deleted file mode 100755 index bd47548..0000000 --- a/ide-plugins/inspect_gradle_kotlin_versions.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env bash -set -eu - -# Print Gradle wrapper distribution URL -if [ -f gradle/wrapper/gradle-wrapper.properties ]; then - echo "== gradle-wrapper.properties ==" - grep -i distributionUrl gradle/wrapper/gradle-wrapper.properties || true - echo -fi - -# Print gradle.properties if present -if [ -f gradle.properties ]; then - echo "== gradle.properties ==" - cat gradle.properties || true - echo -fi - -# Search for Kotlin Gradle plugin references -echo "== Kotlin plugin references (searching for kotlin-gradle-plugin and org.jetbrains.kotlin) ==" -grep -R --line-number --color=never "kotlin-gradle-plugin" || true -grep -R --line-number --color=never "org.jetbrains.kotlin" || true - -# Print build.gradle(.kts) files header lines to show plugin versions where declared -for f in $(git ls-files "*.gradle" "*.gradle.kts" 2>/dev/null || true); do - echo "---- $f ----" - sed -n '1,200p' "$f" | sed -n '1,60p' - echo -done - -# Print settings.gradle(.kts) -for f in $(git ls-files "settings.gradle" "settings.gradle.kts" 2>/dev/null || true); do - echo "---- $f ----" - sed -n '1,200p' "$f" | sed -n '1,60p' - echo -done - -# Print the kotlin plugin versions extracted via a rough regex -echo "== Extracted candidate versions ==" -grep -R --line-number --color=never "kotlin-gradle-plugin[:=][^\n]*" || true