1
1
import com.github.jk1.license.filter.ExcludeTransitiveDependenciesFilter
2
2
import com.github.jk1.license.render.JsonReportRenderer
3
+ import org.jetbrains.intellij.pluginRepository.PluginRepositoryFactory
3
4
import org.jetbrains.kotlin.com.intellij.openapi.util.SystemInfoRt
4
5
import java.nio.file.Path
5
6
import kotlin.io.path.div
@@ -11,6 +12,12 @@ plugins {
11
12
alias(libs.plugins.dependency.license.report)
12
13
}
13
14
15
+ buildscript {
16
+ dependencies {
17
+ classpath(libs.marketplace.client)
18
+ }
19
+ }
20
+
14
21
repositories {
15
22
mavenCentral()
16
23
maven(" https://packages.jetbrains.team/maven/p/tbx/gateway" )
@@ -37,7 +44,8 @@ tasks.compileKotlin {
37
44
)
38
45
}
39
46
40
- val pluginId = " sample"
47
+ val pluginId = " dev.kropp.toolbox.sample"
48
+ val pluginVersion = " 0.0.1"
41
49
42
50
val assemblePlugin by tasks.registering(Jar ::class ) {
43
51
archiveBaseName.set(pluginId)
@@ -68,8 +76,38 @@ val copyPlugin by tasks.creating(Sync::class.java) {
68
76
69
77
from(" src/main/resources" ) {
70
78
include(" extension.json" )
79
+ include(" dependencies.json" )
71
80
include(" icon.svg" )
72
81
}
73
82
74
83
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
+ }
75
113
}
0 commit comments