buildscript { repositories { mavenCentral() maven { url('https://dl.bintray.com/jetbrains/plugin-repository-rest-client/') } } dependencies { classpath 'org.jetbrains.intellij:plugin-repository-rest-client:0.1.15' } } task uploadPlugins { doLast { def env = System.getenv() def username = env['PLUGIN_REPOSITORY_USER'] def password = env['PLUGIN_REPOSITORY_PASSWORD'] def channel = env['PLUGIN_REPOSITORY_CHANNEL'] if (channel == "_default_") { channel = null } def path = env['PLUGIN_UPLOAD_PATH'] if (path == null) { path = "." } def repo = new org.jetbrains.intellij.pluginRepository.PluginRepositoryInstance( "https://plugins.jetbrains.com/", username, password) File[] files = new File(path).listFiles({ _, String filename -> if (!filename.startsWith("kotlin-plugin") || !filename.endsWith(".zip")) false else { // don't publish CIDR plugins to IDEA channel def filenameLowerCase = filename.toLowerCase() if (filenameLowerCase.contains("clion") || filenameLowerCase.contains("appcode")) false else true } } as FilenameFilter) files = files.sort { f1, f2 -> f1.name.contains("1.1.2-5") ? 1 : (f2.name.contains("1.1.2-5") ? -1 : (f1.name <=> f2.name)) } files.each { file -> println("Uploading ${file.name}") repo.uploadPlugin(6954, file, channel) } } } defaultTasks 'uploadPlugins'