diff --git a/build.gradle.kts b/build.gradle.kts index 3dcab05..ecfa952 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,6 +5,8 @@ import com.github.jk1.license.render.JsonReportRenderer import com.jetbrains.plugin.structure.toolbox.ToolboxMeta import com.jetbrains.plugin.structure.toolbox.ToolboxPluginDescriptor import org.jetbrains.intellij.pluginRepository.PluginRepositoryFactory +import org.jetbrains.intellij.pluginRepository.model.LicenseUrl +import org.jetbrains.intellij.pluginRepository.model.ProductFamily import org.jetbrains.kotlin.com.intellij.openapi.util.SystemInfoRt import org.jetbrains.kotlin.gradle.dsl.JvmTarget import java.nio.file.Path @@ -153,7 +155,10 @@ fun CopySpec.fromCompileDependencies() { ) } -val pluginZip by tasks.creating(Zip::class) { +/** + * Useful when doing manual local install. + */ +val pluginPrettyZip by tasks.creating(Zip::class) { archiveBaseName.set(properties("name")) dependsOn(tasks.jar) dependsOn(tasks.getByName("generateLicenseReport")) @@ -162,6 +167,14 @@ val pluginZip by tasks.creating(Zip::class) { into(extension.id) // folder like com.coder.toolbox } +val pluginZip by tasks.creating(Zip::class) { + dependsOn(tasks.jar) + dependsOn(tasks.getByName("generateLicenseReport")) + + fromCompileDependencies() + archiveBaseName.set(extension.id) +} + tasks.register("cleanAll", Delete::class.java) { dependsOn(tasks.clean) delete(getPluginInstallDir()) @@ -187,20 +200,43 @@ private fun getPluginInstallDir(): Path { return pluginsDir / extension.id } -val publishPlugin by tasks.creating { +val publishPlugin by tasks.registering { dependsOn(pluginZip) doLast { + val pluginMarketplaceToken: String = if (System.getenv("JETBRAINS_MARKETPLACE_PUBLISH_TOKEN").isNullOrBlank()) { + error("Env. variable `JETBRAINS_MARKETPLACE_PUBLISH_TOKEN` does not exist. Please set the env. variable to a token obtained from the marketplace.") + } else { + System.getenv("JETBRAINS_MARKETPLACE_PUBLISH_TOKEN") + } + + println("Plugin Marketplace Token: ${pluginMarketplaceToken.take(5)}*****") + val instance = PluginRepositoryFactory.create( "https://plugins.jetbrains.com", - project.property("PUBLISH_TOKEN").toString() + pluginMarketplaceToken ) - // first upload - // instance.uploader.uploadNewPlugin(pluginZip.outputs.files.singleFile, listOf("toolbox", "gateway"), LicenseUrl.APACHE_2_0, ProductFamily.TOOLBOX) - - // subsequent updates - instance.uploader.upload(extension.id, pluginZip.outputs.files.singleFile) + if (extension.version == "0.1.0") { + instance.uploader.uploadNewPlugin( + pluginZip.outputs.files.singleFile, + listOf("toolbox", "gateway"), // do not change + LicenseUrl.MIT, // choose wisely + ProductFamily.TOOLBOX, // do not change + extension.meta.vendor, // do not change + isHidden = true + ) + } else { + // !!! subsequent updates !!! + instance.uploader.uploadUpdateByXmlIdAndFamily( + extension.id, // do not change + ProductFamily.TOOLBOX, // do not change + pluginZip.outputs.files.singleFile, // do not change + null, // do not change. Channels will be available later + "Bug fixes and improvements", + true + ) + } } } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy