From 1ea0f4e958a6a44e5ab0a1a7d962f5cd80e08672 Mon Sep 17 00:00:00 2001 From: chippmann Date: Sun, 8 Jun 2025 16:47:11 +0200 Subject: [PATCH 01/13] Setup deployment plugin for the new maven plugin portal --- kt/build-logic/convention/build.gradle.kts | 1 + .../publish/PublishToMavenCentralPlugin.kt | 80 +++++++------------ kt/gradle/libs.versions.toml | 3 + 3 files changed, 34 insertions(+), 50 deletions(-) diff --git a/kt/build-logic/convention/build.gradle.kts b/kt/build-logic/convention/build.gradle.kts index b67b6876a8..cc86ff0e54 100644 --- a/kt/build-logic/convention/build.gradle.kts +++ b/kt/build-logic/convention/build.gradle.kts @@ -12,6 +12,7 @@ kotlin { dependencies { compileOnly(kotlin("gradle-plugin", version = libs.versions.kotlin.get())) implementation(libs.grgit) + implementation(libs.maven.publish) } gradlePlugin { diff --git a/kt/build-logic/convention/src/main/kotlin/publish/PublishToMavenCentralPlugin.kt b/kt/build-logic/convention/src/main/kotlin/publish/PublishToMavenCentralPlugin.kt index 6765345134..eb23d74ff1 100644 --- a/kt/build-logic/convention/src/main/kotlin/publish/PublishToMavenCentralPlugin.kt +++ b/kt/build-logic/convention/src/main/kotlin/publish/PublishToMavenCentralPlugin.kt @@ -1,83 +1,63 @@ + package publish +import com.vanniktech.maven.publish.MavenPublishBaseExtension +import com.vanniktech.maven.publish.MavenPublishPlugin +import com.vanniktech.maven.publish.SonatypeHost import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.plugins.JavaPluginExtension import org.gradle.api.publish.PublishingExtension import org.gradle.api.publish.maven.MavenPublication -import org.gradle.api.tasks.SourceSetContainer -import org.gradle.jvm.tasks.Jar import org.gradle.plugins.signing.Sign -import org.gradle.plugins.signing.SigningExtension +@Suppress("unused") // false positive class PublishToMavenCentralPlugin : Plugin { override fun apply(target: Project) { - target.plugins.apply("maven-publish") - - val ossrhUser = target.propOrEnv("GODOT_KOTLIN_MAVEN_CENTRAL_TOKEN_USERNAME") - val ossrhPassword = target.propOrEnv("GODOT_KOTLIN_MAVEN_CENTRAL_TOKEN_PASSWORD") - val signingKey = target.propOrEnv("GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII") - val signingPassword = target.propOrEnv("GODOT_KOTLIN_GPG_KEY_PASSPHRASE") - val canSign = ossrhUser != null && ossrhPassword != null && signingKey != null && signingPassword != null - - if (canSign) { - target.plugins.apply("signing") - target.logger.info("Will sign artifact for project \"${target.name}\" and setup publishing") - } else { - target.logger.warn("Cannot sign project \"${target.name}\" as credentials are missing. Will not setup signing and remote publishing credentials. Publishing will only work to maven local!") - } + target.plugins.apply(org.gradle.api.publish.maven.plugins.MavenPublishPlugin::class.java) - target.afterEvaluate { project -> - val isReleaseMode = !(project.version as String).endsWith("-SNAPSHOT") + target.afterEvaluate { evaluatedProject -> + val mavenCentralUser = target.propOrEnv("GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME") + val mavenCentralPassword = target.propOrEnv("GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD") + val gpgInMemoryKey = target.propOrEnv("GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII") + val gpgPassword = target.propOrEnv("GODOT_KOTLIN_GPG_KEY_PASSPHRASE") - if (canSign) { // for local development, If missing in CI it will fail later on deploy so we would notice the issue then - project.extensions.configure(SigningExtension::class.java) { signingExtension -> - signingExtension.useInMemoryPgpKeys(signingKey, signingPassword) - project.extensions.findByType(PublishingExtension::class.java)?.publications?.all { publication -> - signingExtension.sign(publication) - } - } - } + val canSign = mavenCentralUser != null && mavenCentralPassword != null && gpgInMemoryKey != null && gpgPassword != null - project.extensions.getByType(JavaPluginExtension::class.java).apply { + target.extensions.getByType(JavaPluginExtension::class.java).apply { withSourcesJar() withJavadocJar() } - project.extensions.getByType(PublishingExtension::class.java).apply { - repositories.apply { - maven { mavenArtifactRepository -> - val targetRepo = if (isReleaseMode) { - "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/" - } else { - "https://s01.oss.sonatype.org/content/repositories/snapshots/" - } - mavenArtifactRepository.setUrl(targetRepo) + if (canSign) { + evaluatedProject.logger.info("Will sign artifact for project \"${evaluatedProject.name}\" and setup publishing") - if (canSign) { - mavenArtifactRepository.credentials { passwordCredentials -> - passwordCredentials.username = ossrhUser - passwordCredentials.password = ossrhPassword - } - } - } + evaluatedProject.pluginManager.apply(MavenPublishPlugin::class.java) + evaluatedProject.extensions.getByType(MavenPublishBaseExtension::class.java).apply { + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() } + } else { + evaluatedProject.logger.warn("Cannot sign project \"${evaluatedProject.name}\" as credentials are missing. Will not setup signing and remote publishing credentials. Publishing will only work to maven local!") + } + + target.extensions.getByType(PublishingExtension::class.java).apply { publications { publicationContainer -> publicationContainer.all { publication -> if (publication is MavenPublication) { publication.groupId = "com.utopia-rise" val artifactId = publication.artifactId - publication.artifactId = if (artifactId.isNullOrEmpty()) project.name else artifactId - publication.version = project.version as String + publication.artifactId = if (artifactId.isNullOrEmpty()) target.name else artifactId + publication.version = target.version as String publication.pom { mavenPom -> mavenPom.url.set("https://github.com/utopia-rise/godot-kotlin-jvm.git") if (mavenPom.name.getOrElse("").isNullOrEmpty()) { - mavenPom.name.set(project.name) + mavenPom.name.set(target.name) } if (mavenPom.description.getOrElse("").isNullOrEmpty()) { - mavenPom.description.set(project.description ?: "Godot kotlin jvm module") + mavenPom.description.set(target.description ?: "Godot kotlin jvm module") } mavenPom.scm { mavenPomScm -> @@ -128,11 +108,11 @@ class PublishToMavenCentralPlugin : Plugin { } if (canSign) { - project + target .tasks .filter { task -> task.name.startsWith("publish") } .forEach { task -> - task.dependsOn(project.tasks.withType(Sign::class.java)) + task.dependsOn(target.tasks.withType(Sign::class.java)) } } } diff --git a/kt/gradle/libs.versions.toml b/kt/gradle/libs.versions.toml index 83b927fc71..c9ac1a6931 100644 --- a/kt/gradle/libs.versions.toml +++ b/kt/gradle/libs.versions.toml @@ -21,6 +21,7 @@ jacksonDataFormatXml = "2.18.2" # https://mvnrepository.com/artifact/com.fasterx grgit = "5.3.0" # https://github.com/ajoberstar/grgit/releases gradlePublish = "1.3.1" # https://plugins.gradle.org/plugin/com.gradle.plugin-publish +maven-publish="0.32.0" # https://github.com/vanniktech/gradle-maven-publish-plugin/releases changelog = "2.2.1" # https://github.com/JetBrains/gradle-changelog-plugin/releases gradleIntelliJPlugin = "2.3.0" # https://github.com/JetBrains/intellij-platform-gradle-plugin/releases @@ -41,6 +42,8 @@ jacksonDataFormatXml = { module = "com.fasterxml.jackson.dataformat:jackson-data grgit = { module = "org.ajoberstar.grgit:grgit-gradle", version.ref = "grgit" } ideaSync = { module = "org.jetbrains.gradle.plugin.idea-ext:org.jetbrains.gradle.plugin.idea-ext.gradle.plugin", version.ref = "ideaSync" } +maven-publish = { group = "com.vanniktech", name = "gradle-maven-publish-plugin", version.ref = "maven-publish" } # needed for publishing to new maven central repositories + [plugins] changelog = { id = "org.jetbrains.changelog", version.ref = "changelog" } gradleIntelliJPlugin = { id = "org.jetbrains.intellij.platform", version.ref = "gradleIntelliJPlugin" } From 3e8e66c46b381625ec8e01b89c862e5983c92580 Mon Sep 17 00:00:00 2001 From: chippmann Date: Sun, 8 Jun 2025 16:54:35 +0200 Subject: [PATCH 02/13] Add test deployment trigger --- .../workflows/trigger_dev_test_deployment.yml | 137 ++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 .github/workflows/trigger_dev_test_deployment.yml diff --git a/.github/workflows/trigger_dev_test_deployment.yml b/.github/workflows/trigger_dev_test_deployment.yml new file mode 100644 index 0000000000..693e5e8f7d --- /dev/null +++ b/.github/workflows/trigger_dev_test_deployment.yml @@ -0,0 +1,137 @@ +name: Dev test deployment + +on: + push: + branches: + - '*' # matches every branch that doesn't contain a '/' + - '*/*' # matches every branch containing a single '/' + - '**' # matches every branch + - '!master' # excludes master + +concurrency: + group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-trigger_dev_test_deployment + cancel-in-progress: true + +jobs: + deploy-jvm: + name: Deploy jvm artifacts + runs-on: ubuntu-latest + env: + GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII: ${{ secrets.GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII }} + GODOT_KOTLIN_GPG_KEY_PASSPHRASE: ${{ secrets.GODOT_KOTLIN_GPG_KEY_PASSPHRASE }} + GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME }} + GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD }} +# GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }} +# GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }} +# GODOT_KOTLIN_INTELLIJ_PLUGIN_PUBLISH: ${{secrets.GODOT_KOTLIN_INTELLIJ_PLUGIN_PUBLISH }} + steps: + - name: Clone Godot Engine + uses: actions/checkout@v4 + with: + repository: godotengine/godot + ref: ${{ inputs.godot-version }} + + - name: Clone Godot JVM module. + uses: actions/checkout@v4 + with: + path: modules/kotlin_jvm + + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: ${{ inputs.jvm-version }} + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-read-only: ${{ github.ref != 'refs/heads/master' }} + + - name: Publish common + shell: sh + run: | + modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :common:publish + + - name: Publish tools-common + shell: sh + run: | + modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :tools-common:publish + + - name: Publish godot-build-props + shell: sh + run: | + modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-build-props:publish + + - name: Publish godot-entry-generator + shell: sh + run: | + modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-entry-generator:publish + + - name: Publish godot-kotlin-symbol-processor + shell: sh + run: | + modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-kotlin-symbol-processor:publish + + - name: Publish godot-internal-library debug + shell: sh + run: | + modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-internal-library:publish -Pdebug + + - name: Publish godot-internal-library release + shell: sh + run: | + modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-internal-library:publish -Prelease + + - name: Publish godot-core-library debug + shell: sh + run: | + modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-core-library:publish -Pdebug + + - name: Publish godot-core-library release + shell: sh + run: | + modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-core-library:publish -Prelease + + - name: Publish godot-api-library debug + shell: sh + run: | + modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-api-library:publish -Pdebug + + - name: Publish godot-api-library release + shell: sh + run: | + modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-api-library:publish -Prelease + + - name: Publish godot-extension-library debug + shell: sh + run: | + modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-extension-library:publish -Pdebug + + - name: Publish godot-extension-library release + shell: sh + run: | + modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-extension-library:publish -Prelease + + - name: Publish godot-coroutine-library debug + shell: sh + run: | + modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-coroutine-library:publish -Pdebug + + - name: Publish godot-coroutine-library release + shell: sh + run: | + modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-coroutine-library:publish -Prelease + + - name: Publish godot-plugins-common + shell: sh + run: | + modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-plugins-common:publish + +# - name: Publish godot plugins +# shell: sh +# run: | +# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-gradle-plugin:publish :godot-gradle-plugin:publishPlugins -Pgradle.publish.key=$GRADLE_PUBLISH_KEY -Pgradle.publish.secret=$GRADLE_PUBLISH_SECRET +# +# - name: Deploy intellij plugin +# shell: sh +# run: | +# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-intellij-plugin:publishPlugin \ No newline at end of file From 61be684669d49eca84cd2d911ae4d6ba6f87baea Mon Sep 17 00:00:00 2001 From: chippmann Date: Sun, 8 Jun 2025 16:55:57 +0200 Subject: [PATCH 03/13] Remove other deployments temporarily --- .../workflows/trigger_dev_test_deployment.yml | 148 +++++++++--------- 1 file changed, 74 insertions(+), 74 deletions(-) diff --git a/.github/workflows/trigger_dev_test_deployment.yml b/.github/workflows/trigger_dev_test_deployment.yml index 693e5e8f7d..545c191813 100644 --- a/.github/workflows/trigger_dev_test_deployment.yml +++ b/.github/workflows/trigger_dev_test_deployment.yml @@ -46,80 +46,80 @@ jobs: with: cache-read-only: ${{ github.ref != 'refs/heads/master' }} - - name: Publish common - shell: sh - run: | - modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :common:publish - - - name: Publish tools-common - shell: sh - run: | - modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :tools-common:publish - - - name: Publish godot-build-props - shell: sh - run: | - modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-build-props:publish - - - name: Publish godot-entry-generator - shell: sh - run: | - modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-entry-generator:publish - - - name: Publish godot-kotlin-symbol-processor - shell: sh - run: | - modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-kotlin-symbol-processor:publish - - - name: Publish godot-internal-library debug - shell: sh - run: | - modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-internal-library:publish -Pdebug - - - name: Publish godot-internal-library release - shell: sh - run: | - modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-internal-library:publish -Prelease - - - name: Publish godot-core-library debug - shell: sh - run: | - modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-core-library:publish -Pdebug - - - name: Publish godot-core-library release - shell: sh - run: | - modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-core-library:publish -Prelease - - - name: Publish godot-api-library debug - shell: sh - run: | - modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-api-library:publish -Pdebug - - - name: Publish godot-api-library release - shell: sh - run: | - modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-api-library:publish -Prelease - - - name: Publish godot-extension-library debug - shell: sh - run: | - modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-extension-library:publish -Pdebug - - - name: Publish godot-extension-library release - shell: sh - run: | - modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-extension-library:publish -Prelease - - - name: Publish godot-coroutine-library debug - shell: sh - run: | - modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-coroutine-library:publish -Pdebug - - - name: Publish godot-coroutine-library release - shell: sh - run: | - modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-coroutine-library:publish -Prelease +# - name: Publish common +# shell: sh +# run: | +# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :common:publish +# +# - name: Publish tools-common +# shell: sh +# run: | +# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :tools-common:publish +# +# - name: Publish godot-build-props +# shell: sh +# run: | +# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-build-props:publish +# +# - name: Publish godot-entry-generator +# shell: sh +# run: | +# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-entry-generator:publish +# +# - name: Publish godot-kotlin-symbol-processor +# shell: sh +# run: | +# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-kotlin-symbol-processor:publish +# +# - name: Publish godot-internal-library debug +# shell: sh +# run: | +# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-internal-library:publish -Pdebug +# +# - name: Publish godot-internal-library release +# shell: sh +# run: | +# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-internal-library:publish -Prelease +# +# - name: Publish godot-core-library debug +# shell: sh +# run: | +# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-core-library:publish -Pdebug +# +# - name: Publish godot-core-library release +# shell: sh +# run: | +# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-core-library:publish -Prelease +# +# - name: Publish godot-api-library debug +# shell: sh +# run: | +# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-api-library:publish -Pdebug +# +# - name: Publish godot-api-library release +# shell: sh +# run: | +# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-api-library:publish -Prelease +# +# - name: Publish godot-extension-library debug +# shell: sh +# run: | +# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-extension-library:publish -Pdebug +# +# - name: Publish godot-extension-library release +# shell: sh +# run: | +# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-extension-library:publish -Prelease +# +# - name: Publish godot-coroutine-library debug +# shell: sh +# run: | +# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-coroutine-library:publish -Pdebug +# +# - name: Publish godot-coroutine-library release +# shell: sh +# run: | +# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-coroutine-library:publish -Prelease - name: Publish godot-plugins-common shell: sh From 35085c6df8f835669eda5229e06a9810ad08a88d Mon Sep 17 00:00:00 2001 From: chippmann Date: Sun, 8 Jun 2025 16:57:29 +0200 Subject: [PATCH 04/13] Fix invalid references --- .github/workflows/trigger_dev_test_deployment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/trigger_dev_test_deployment.yml b/.github/workflows/trigger_dev_test_deployment.yml index 545c191813..5f32cccfbd 100644 --- a/.github/workflows/trigger_dev_test_deployment.yml +++ b/.github/workflows/trigger_dev_test_deployment.yml @@ -29,7 +29,7 @@ jobs: uses: actions/checkout@v4 with: repository: godotengine/godot - ref: ${{ inputs.godot-version }} + ref: "4.4.1-stable" - name: Clone Godot JVM module. uses: actions/checkout@v4 @@ -39,7 +39,7 @@ jobs: - uses: actions/setup-java@v4 with: distribution: temurin - java-version: ${{ inputs.jvm-version }} + java-version: 17 - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 From 1ed101018ab1f71165446108e290a871e46363a6 Mon Sep 17 00:00:00 2001 From: chippmann Date: Sun, 8 Jun 2025 17:05:16 +0200 Subject: [PATCH 05/13] Add missing gradle properties --- .../workflows/trigger_dev_test_deployment.yml | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/.github/workflows/trigger_dev_test_deployment.yml b/.github/workflows/trigger_dev_test_deployment.yml index 5f32cccfbd..264772503d 100644 --- a/.github/workflows/trigger_dev_test_deployment.yml +++ b/.github/workflows/trigger_dev_test_deployment.yml @@ -16,15 +16,20 @@ jobs: deploy-jvm: name: Deploy jvm artifacts runs-on: ubuntu-latest - env: - GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII: ${{ secrets.GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII }} - GODOT_KOTLIN_GPG_KEY_PASSPHRASE: ${{ secrets.GODOT_KOTLIN_GPG_KEY_PASSPHRASE }} - GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME }} - GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD }} -# GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }} -# GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }} -# GODOT_KOTLIN_INTELLIJ_PLUGIN_PUBLISH: ${{secrets.GODOT_KOTLIN_INTELLIJ_PLUGIN_PUBLISH }} steps: + - name: Setup publish gradle properties + shell: sh + run: | + echo "mavenCentralUsername=$MAVEN_CENTRAL_USERNAME" >> ~/.gradle/gradle.properties + echo "mavenCentralPassword=$MAVEN_CENTRAL_PASSWORD" >> ~/.gradle/gradle.properties + echo "signingInMemoryKey=$GPG_IN_MEMORY_KEY" >> ~/.gradle/gradle.properties + echo "signingInMemoryKeyPassword=$GPG_PASSWORD" >> ~/.gradle/gradle.properties + env: + MAVEN_CENTRAL_USERNAME: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME }} + MAVEN_CENTRAL_PASSWORD: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD }} + GPG_IN_MEMORY_KEY: ${{ secrets.GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII }} + GPG_PASSWORD: ${{ secrets.GODOT_KOTLIN_GPG_KEY_PASSPHRASE }} + - name: Clone Godot Engine uses: actions/checkout@v4 with: From 9b223cb3f3c164ae206428b8e8b80daae687a538 Mon Sep 17 00:00:00 2001 From: chippmann Date: Sun, 8 Jun 2025 17:06:16 +0200 Subject: [PATCH 06/13] Fix task order --- .../workflows/trigger_dev_test_deployment.yml | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/trigger_dev_test_deployment.yml b/.github/workflows/trigger_dev_test_deployment.yml index 264772503d..03b9c26022 100644 --- a/.github/workflows/trigger_dev_test_deployment.yml +++ b/.github/workflows/trigger_dev_test_deployment.yml @@ -17,19 +17,6 @@ jobs: name: Deploy jvm artifacts runs-on: ubuntu-latest steps: - - name: Setup publish gradle properties - shell: sh - run: | - echo "mavenCentralUsername=$MAVEN_CENTRAL_USERNAME" >> ~/.gradle/gradle.properties - echo "mavenCentralPassword=$MAVEN_CENTRAL_PASSWORD" >> ~/.gradle/gradle.properties - echo "signingInMemoryKey=$GPG_IN_MEMORY_KEY" >> ~/.gradle/gradle.properties - echo "signingInMemoryKeyPassword=$GPG_PASSWORD" >> ~/.gradle/gradle.properties - env: - MAVEN_CENTRAL_USERNAME: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME }} - MAVEN_CENTRAL_PASSWORD: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD }} - GPG_IN_MEMORY_KEY: ${{ secrets.GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII }} - GPG_PASSWORD: ${{ secrets.GODOT_KOTLIN_GPG_KEY_PASSPHRASE }} - - name: Clone Godot Engine uses: actions/checkout@v4 with: @@ -51,6 +38,19 @@ jobs: with: cache-read-only: ${{ github.ref != 'refs/heads/master' }} + - name: Setup publish gradle properties + shell: sh + run: | + echo "mavenCentralUsername=$MAVEN_CENTRAL_USERNAME" >> ~/.gradle/gradle.properties + echo "mavenCentralPassword=$MAVEN_CENTRAL_PASSWORD" >> ~/.gradle/gradle.properties + echo "signingInMemoryKey=$GPG_IN_MEMORY_KEY" >> ~/.gradle/gradle.properties + echo "signingInMemoryKeyPassword=$GPG_PASSWORD" >> ~/.gradle/gradle.properties + env: + MAVEN_CENTRAL_USERNAME: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME }} + MAVEN_CENTRAL_PASSWORD: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD }} + GPG_IN_MEMORY_KEY: ${{ secrets.GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII }} + GPG_PASSWORD: ${{ secrets.GODOT_KOTLIN_GPG_KEY_PASSPHRASE }} + # - name: Publish common # shell: sh # run: | From 53181e63f23ccd186db1c9d8b1b57c5bdd1adc1b Mon Sep 17 00:00:00 2001 From: chippmann Date: Sun, 8 Jun 2025 17:11:02 +0200 Subject: [PATCH 07/13] Improve env setup --- .../workflows/trigger_dev_test_deployment.yml | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/.github/workflows/trigger_dev_test_deployment.yml b/.github/workflows/trigger_dev_test_deployment.yml index 03b9c26022..2ac87b0188 100644 --- a/.github/workflows/trigger_dev_test_deployment.yml +++ b/.github/workflows/trigger_dev_test_deployment.yml @@ -16,6 +16,14 @@ jobs: deploy-jvm: name: Deploy jvm artifacts runs-on: ubuntu-latest + env: + GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII: ${{ secrets.GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII }} + GODOT_KOTLIN_GPG_KEY_PASSPHRASE: ${{ secrets.GODOT_KOTLIN_GPG_KEY_PASSPHRASE }} + GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME }} + GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD }} + # GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }} + # GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }} + # GODOT_KOTLIN_INTELLIJ_PLUGIN_PUBLISH: ${{secrets.GODOT_KOTLIN_INTELLIJ_PLUGIN_PUBLISH }} steps: - name: Clone Godot Engine uses: actions/checkout@v4 @@ -41,15 +49,10 @@ jobs: - name: Setup publish gradle properties shell: sh run: | - echo "mavenCentralUsername=$MAVEN_CENTRAL_USERNAME" >> ~/.gradle/gradle.properties - echo "mavenCentralPassword=$MAVEN_CENTRAL_PASSWORD" >> ~/.gradle/gradle.properties - echo "signingInMemoryKey=$GPG_IN_MEMORY_KEY" >> ~/.gradle/gradle.properties - echo "signingInMemoryKeyPassword=$GPG_PASSWORD" >> ~/.gradle/gradle.properties - env: - MAVEN_CENTRAL_USERNAME: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME }} - MAVEN_CENTRAL_PASSWORD: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD }} - GPG_IN_MEMORY_KEY: ${{ secrets.GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII }} - GPG_PASSWORD: ${{ secrets.GODOT_KOTLIN_GPG_KEY_PASSPHRASE }} + echo "mavenCentralUsername=$GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME" >> ~/.gradle/gradle.properties + echo "mavenCentralPassword=$GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD" >> ~/.gradle/gradle.properties + echo "signingInMemoryKey=$GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII" >> ~/.gradle/gradle.properties + echo "signingInMemoryKeyPassword=$GODOT_KOTLIN_GPG_KEY_PASSPHRASE" >> ~/.gradle/gradle.properties # - name: Publish common # shell: sh From 194b2f1062b00362f242f5558287d828a7396f92 Mon Sep 17 00:00:00 2001 From: chippmann Date: Sun, 8 Jun 2025 17:43:28 +0200 Subject: [PATCH 08/13] Print stacktrace --- .github/workflows/trigger_dev_test_deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/trigger_dev_test_deployment.yml b/.github/workflows/trigger_dev_test_deployment.yml index 2ac87b0188..f4ab015a98 100644 --- a/.github/workflows/trigger_dev_test_deployment.yml +++ b/.github/workflows/trigger_dev_test_deployment.yml @@ -132,7 +132,7 @@ jobs: - name: Publish godot-plugins-common shell: sh run: | - modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-plugins-common:publish + modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-plugins-common:publish --stacktrace # - name: Publish godot plugins # shell: sh From 235fe0d2e30fd5bd9f7581315b90e1634e0e7a06 Mon Sep 17 00:00:00 2001 From: chippmann Date: Sun, 8 Jun 2025 18:23:35 +0200 Subject: [PATCH 09/13] Reorder tasks --- .../publish/PublishToMavenCentralPlugin.kt | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/kt/build-logic/convention/src/main/kotlin/publish/PublishToMavenCentralPlugin.kt b/kt/build-logic/convention/src/main/kotlin/publish/PublishToMavenCentralPlugin.kt index eb23d74ff1..fab4edf42f 100644 --- a/kt/build-logic/convention/src/main/kotlin/publish/PublishToMavenCentralPlugin.kt +++ b/kt/build-logic/convention/src/main/kotlin/publish/PublishToMavenCentralPlugin.kt @@ -17,10 +17,10 @@ class PublishToMavenCentralPlugin : Plugin { target.plugins.apply(org.gradle.api.publish.maven.plugins.MavenPublishPlugin::class.java) target.afterEvaluate { evaluatedProject -> - val mavenCentralUser = target.propOrEnv("GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME") - val mavenCentralPassword = target.propOrEnv("GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD") - val gpgInMemoryKey = target.propOrEnv("GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII") - val gpgPassword = target.propOrEnv("GODOT_KOTLIN_GPG_KEY_PASSPHRASE") + val mavenCentralUser = target.propOrEnv("GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME") ?: target.propOrEnv("mavenCentralUsername") + val mavenCentralPassword = target.propOrEnv("GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD") ?: target.propOrEnv("mavenCentralPassword") + val gpgInMemoryKey = target.propOrEnv("GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII") ?: target.propOrEnv("signingInMemoryKey") + val gpgPassword = target.propOrEnv("GODOT_KOTLIN_GPG_KEY_PASSPHRASE") ?: target.propOrEnv("signingInMemoryKeyPassword") val canSign = mavenCentralUser != null && mavenCentralPassword != null && gpgInMemoryKey != null && gpgPassword != null @@ -29,18 +29,6 @@ class PublishToMavenCentralPlugin : Plugin { withJavadocJar() } - if (canSign) { - evaluatedProject.logger.info("Will sign artifact for project \"${evaluatedProject.name}\" and setup publishing") - - evaluatedProject.pluginManager.apply(MavenPublishPlugin::class.java) - evaluatedProject.extensions.getByType(MavenPublishBaseExtension::class.java).apply { - publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) - signAllPublications() - } - } else { - evaluatedProject.logger.warn("Cannot sign project \"${evaluatedProject.name}\" as credentials are missing. Will not setup signing and remote publishing credentials. Publishing will only work to maven local!") - } - target.extensions.getByType(PublishingExtension::class.java).apply { publications { publicationContainer -> publicationContainer.all { publication -> @@ -107,20 +95,31 @@ class PublishToMavenCentralPlugin : Plugin { } } + if (canSign) { + evaluatedProject.logger.info("Will sign artifact for project \"${evaluatedProject.name}\" and setup publishing") + + evaluatedProject.pluginManager.apply(MavenPublishPlugin::class.java) + evaluatedProject.extensions.getByType(MavenPublishBaseExtension::class.java).apply { + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() + } + target .tasks .filter { task -> task.name.startsWith("publish") } .forEach { task -> task.dependsOn(target.tasks.withType(Sign::class.java)) } + } else { + evaluatedProject.logger.warn("Cannot sign project \"${evaluatedProject.name}\" as credentials are missing. Will not setup signing and remote publishing credentials. Publishing will only work to maven local!") } } } } fun Project.propOrEnv(name: String): String? { - var property: String? = findProperty(name) as String? + var property: String? = findProperty(name) as? String? if (property == null) { property = System.getenv(name) } From 077ac88d6c8ee910151d521da0db4eb2ea00d298 Mon Sep 17 00:00:00 2001 From: chippmann Date: Sun, 8 Jun 2025 18:23:46 +0200 Subject: [PATCH 10/13] tmp update version --- kt/gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kt/gradle/libs.versions.toml b/kt/gradle/libs.versions.toml index c9ac1a6931..63824bdf20 100644 --- a/kt/gradle/libs.versions.toml +++ b/kt/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] -godotKotlinJvm = "0.13.1" +godotKotlinJvm = "0.13.2" kotlin = "2.1.10" # https://kotlinlang.org/docs/releases.html#release-details kotlinCoroutine = "1.10.1" # https://github.com/Kotlin/kotlinx.coroutines/releases godot = "4.4.1" From 48633846ad2f73d25ed7f02c59aa442fc2d4bc7b Mon Sep 17 00:00:00 2001 From: chippmann Date: Sun, 8 Jun 2025 18:30:37 +0200 Subject: [PATCH 11/13] Remove unnecessary source declaration --- .../publish/PublishToMavenCentralPlugin.kt | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/kt/build-logic/convention/src/main/kotlin/publish/PublishToMavenCentralPlugin.kt b/kt/build-logic/convention/src/main/kotlin/publish/PublishToMavenCentralPlugin.kt index fab4edf42f..fd31c313d8 100644 --- a/kt/build-logic/convention/src/main/kotlin/publish/PublishToMavenCentralPlugin.kt +++ b/kt/build-logic/convention/src/main/kotlin/publish/PublishToMavenCentralPlugin.kt @@ -6,7 +6,6 @@ import com.vanniktech.maven.publish.MavenPublishPlugin import com.vanniktech.maven.publish.SonatypeHost import org.gradle.api.Plugin import org.gradle.api.Project -import org.gradle.api.plugins.JavaPluginExtension import org.gradle.api.publish.PublishingExtension import org.gradle.api.publish.maven.MavenPublication import org.gradle.plugins.signing.Sign @@ -24,11 +23,6 @@ class PublishToMavenCentralPlugin : Plugin { val canSign = mavenCentralUser != null && mavenCentralPassword != null && gpgInMemoryKey != null && gpgPassword != null - target.extensions.getByType(JavaPluginExtension::class.java).apply { - withSourcesJar() - withJavadocJar() - } - target.extensions.getByType(PublishingExtension::class.java).apply { publications { publicationContainer -> publicationContainer.all { publication -> @@ -105,12 +99,14 @@ class PublishToMavenCentralPlugin : Plugin { signAllPublications() } - target - .tasks - .filter { task -> task.name.startsWith("publish") } - .forEach { task -> - task.dependsOn(target.tasks.withType(Sign::class.java)) - } + target.afterEvaluate { + target + .tasks + .filter { task -> task.name.startsWith("publish") } + .forEach { task -> + task.dependsOn(target.tasks.withType(Sign::class.java)) + } + } } else { evaluatedProject.logger.warn("Cannot sign project \"${evaluatedProject.name}\" as credentials are missing. Will not setup signing and remote publishing credentials. Publishing will only work to maven local!") } From 18b05bf064032eb55a7e3f9700ef5a465faef538 Mon Sep 17 00:00:00 2001 From: chippmann Date: Sun, 8 Jun 2025 18:42:07 +0200 Subject: [PATCH 12/13] Revert "tmp update version" This reverts commit 077ac88d6c8ee910151d521da0db4eb2ea00d298. --- kt/gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kt/gradle/libs.versions.toml b/kt/gradle/libs.versions.toml index 63824bdf20..c9ac1a6931 100644 --- a/kt/gradle/libs.versions.toml +++ b/kt/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] -godotKotlinJvm = "0.13.2" +godotKotlinJvm = "0.13.1" kotlin = "2.1.10" # https://kotlinlang.org/docs/releases.html#release-details kotlinCoroutine = "1.10.1" # https://github.com/Kotlin/kotlinx.coroutines/releases godot = "4.4.1" From af7cf60433480b91b3f2b66d46b0edb2d7a21723 Mon Sep 17 00:00:00 2001 From: chippmann Date: Sun, 8 Jun 2025 18:45:11 +0200 Subject: [PATCH 13/13] Delete temporary trigger and adjust actual jvm deployment --- .github/workflows/deploy_jvm.yml | 14 +- .../workflows/trigger_dev_test_deployment.yml | 145 ------------------ 2 files changed, 11 insertions(+), 148 deletions(-) delete mode 100644 .github/workflows/trigger_dev_test_deployment.yml diff --git a/.github/workflows/deploy_jvm.yml b/.github/workflows/deploy_jvm.yml index 047a7df015..ffbe6aa0b6 100644 --- a/.github/workflows/deploy_jvm.yml +++ b/.github/workflows/deploy_jvm.yml @@ -13,10 +13,10 @@ on: type: string env: - GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII: ${{ secrets.GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII }} + GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII: ${{ secrets.GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII_CLEANED }} # TODO: remove old key and rename this one once we're sure that the new deployment works GODOT_KOTLIN_GPG_KEY_PASSPHRASE: ${{ secrets.GODOT_KOTLIN_GPG_KEY_PASSPHRASE }} - GODOT_KOTLIN_MAVEN_CENTRAL_TOKEN_USERNAME: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_TOKEN_USERNAME }} - GODOT_KOTLIN_MAVEN_CENTRAL_TOKEN_PASSWORD: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_TOKEN_PASSWORD }} + GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME }} # TODO: remove old username and password from secrets once we're sure the deployment works + GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD }} # TODO: remove old username and password from secrets once we're sure the deployment works GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }} GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }} GODOT_KOTLIN_INTELLIJ_PLUGIN_PUBLISH: ${{secrets.GODOT_KOTLIN_INTELLIJ_PLUGIN_PUBLISH }} @@ -47,6 +47,14 @@ jobs: with: cache-read-only: ${{ github.ref != 'refs/heads/master' }} + - name: Setup publish gradle properties + shell: sh + run: | + echo "mavenCentralUsername=$GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME" >> ~/.gradle/gradle.properties + echo "mavenCentralPassword=$GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD" >> ~/.gradle/gradle.properties + echo "signingInMemoryKey=$GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII" >> ~/.gradle/gradle.properties + echo "signingInMemoryKeyPassword=$GODOT_KOTLIN_GPG_KEY_PASSPHRASE" >> ~/.gradle/gradle.properties + - name: Publish common shell: sh run: | diff --git a/.github/workflows/trigger_dev_test_deployment.yml b/.github/workflows/trigger_dev_test_deployment.yml deleted file mode 100644 index f4ab015a98..0000000000 --- a/.github/workflows/trigger_dev_test_deployment.yml +++ /dev/null @@ -1,145 +0,0 @@ -name: Dev test deployment - -on: - push: - branches: - - '*' # matches every branch that doesn't contain a '/' - - '*/*' # matches every branch containing a single '/' - - '**' # matches every branch - - '!master' # excludes master - -concurrency: - group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-trigger_dev_test_deployment - cancel-in-progress: true - -jobs: - deploy-jvm: - name: Deploy jvm artifacts - runs-on: ubuntu-latest - env: - GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII: ${{ secrets.GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII }} - GODOT_KOTLIN_GPG_KEY_PASSPHRASE: ${{ secrets.GODOT_KOTLIN_GPG_KEY_PASSPHRASE }} - GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME }} - GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD: ${{ secrets.GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD }} - # GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }} - # GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }} - # GODOT_KOTLIN_INTELLIJ_PLUGIN_PUBLISH: ${{secrets.GODOT_KOTLIN_INTELLIJ_PLUGIN_PUBLISH }} - steps: - - name: Clone Godot Engine - uses: actions/checkout@v4 - with: - repository: godotengine/godot - ref: "4.4.1-stable" - - - name: Clone Godot JVM module. - uses: actions/checkout@v4 - with: - path: modules/kotlin_jvm - - - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 17 - - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - with: - cache-read-only: ${{ github.ref != 'refs/heads/master' }} - - - name: Setup publish gradle properties - shell: sh - run: | - echo "mavenCentralUsername=$GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_USERNAME" >> ~/.gradle/gradle.properties - echo "mavenCentralPassword=$GODOT_KOTLIN_MAVEN_CENTRAL_PORTAL_TOKEN_PASSWORD" >> ~/.gradle/gradle.properties - echo "signingInMemoryKey=$GODOT_KOTLIN_GPG_PRIVATE_KEY_ASCII" >> ~/.gradle/gradle.properties - echo "signingInMemoryKeyPassword=$GODOT_KOTLIN_GPG_KEY_PASSPHRASE" >> ~/.gradle/gradle.properties - -# - name: Publish common -# shell: sh -# run: | -# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :common:publish -# -# - name: Publish tools-common -# shell: sh -# run: | -# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :tools-common:publish -# -# - name: Publish godot-build-props -# shell: sh -# run: | -# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-build-props:publish -# -# - name: Publish godot-entry-generator -# shell: sh -# run: | -# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-entry-generator:publish -# -# - name: Publish godot-kotlin-symbol-processor -# shell: sh -# run: | -# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-kotlin-symbol-processor:publish -# -# - name: Publish godot-internal-library debug -# shell: sh -# run: | -# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-internal-library:publish -Pdebug -# -# - name: Publish godot-internal-library release -# shell: sh -# run: | -# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-internal-library:publish -Prelease -# -# - name: Publish godot-core-library debug -# shell: sh -# run: | -# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-core-library:publish -Pdebug -# -# - name: Publish godot-core-library release -# shell: sh -# run: | -# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-core-library:publish -Prelease -# -# - name: Publish godot-api-library debug -# shell: sh -# run: | -# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-api-library:publish -Pdebug -# -# - name: Publish godot-api-library release -# shell: sh -# run: | -# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-api-library:publish -Prelease -# -# - name: Publish godot-extension-library debug -# shell: sh -# run: | -# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-extension-library:publish -Pdebug -# -# - name: Publish godot-extension-library release -# shell: sh -# run: | -# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-extension-library:publish -Prelease -# -# - name: Publish godot-coroutine-library debug -# shell: sh -# run: | -# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-coroutine-library:publish -Pdebug -# -# - name: Publish godot-coroutine-library release -# shell: sh -# run: | -# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-coroutine-library:publish -Prelease - - - name: Publish godot-plugins-common - shell: sh - run: | - modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-plugins-common:publish --stacktrace - -# - name: Publish godot plugins -# shell: sh -# run: | -# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-gradle-plugin:publish :godot-gradle-plugin:publishPlugins -Pgradle.publish.key=$GRADLE_PUBLISH_KEY -Pgradle.publish.secret=$GRADLE_PUBLISH_SECRET -# -# - name: Deploy intellij plugin -# shell: sh -# run: | -# modules/kotlin_jvm/kt/gradlew -p modules/kotlin_jvm/kt/ :godot-intellij-plugin:publishPlugin \ No newline at end of file