11import com.github.jk1.license.filter.ExcludeTransitiveDependenciesFilter
22import com.github.jk1.license.render.JsonReportRenderer
3+ import org.jetbrains.intellij.pluginRepository.PluginRepositoryFactory
34import org.jetbrains.kotlin.com.intellij.openapi.util.SystemInfoRt
45import java.nio.file.Path
56import kotlin.io.path.div
@@ -11,6 +12,12 @@ plugins {
1112 alias(libs.plugins.dependency.license.report)
1213}
1314
15+ buildscript {
16+ dependencies {
17+ classpath(libs.marketplace.client)
18+ }
19+ }
20+
1421repositories {
1522 mavenCentral()
1623 maven(" https://packages.jetbrains.team/maven/p/tbx/gateway" )
@@ -37,7 +44,8 @@ tasks.compileKotlin {
3744 )
3845}
3946
40- val pluginId = " sample"
47+ val pluginId = " dev.kropp.toolbox.sample"
48+ val pluginVersion = " 0.0.1"
4149
4250val assemblePlugin by tasks.registering(Jar ::class ) {
4351 archiveBaseName.set(pluginId)
@@ -68,8 +76,38 @@ val copyPlugin by tasks.creating(Sync::class.java) {
6876
6977 from(" src/main/resources" ) {
7078 include(" extension.json" )
79+ include(" dependencies.json" )
7180 include(" icon.svg" )
7281 }
7382
7483 into(targetDir)
84+ }
85+
86+ val pluginZip by tasks.creating(Zip ::class ) {
87+ dependsOn(assemblePlugin)
88+
89+ from(assemblePlugin.get().outputs.files)
90+ from(" src/main/resources" ) {
91+ include(" extension.json" )
92+ include(" dependencies.json" )
93+ }
94+ from(" src/main/resources" ) {
95+ include(" icon.svg" )
96+ rename(" icon.svg" , " pluginIcon.svg" )
97+ }
98+ archiveBaseName.set(" $pluginId -$pluginVersion " )
99+ }
100+
101+ val uploadPlugin by tasks.creating {
102+ dependsOn(pluginZip)
103+
104+ doLast {
105+ val instance = PluginRepositoryFactory .create(" https://plugins.jetbrains.com" , project.property(" pluginMarketplaceToken" ).toString())
106+
107+ // first upload
108+ // instance.uploader.uploadNewPlugin(pluginZip.outputs.files.singleFile, listOf("toolbox", "gateway"), LicenseUrl.APACHE_2_0, ProductFamily.TOOLBOX)
109+
110+ // subsequent updates
111+ instance.uploader.upload(" dev.kropp.toolbox.sample" , pluginZip.outputs.files.singleFile)
112+ }
75113}
0 commit comments