mirror of
https://github.com/chylex/IntelliJ-IdeaVim.git
synced 2024-11-24 05:42:45 +01:00
125 lines
2.8 KiB
Groovy
125 lines
2.8 KiB
Groovy
buildscript {
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
dependencies {
|
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
|
|
}
|
|
}
|
|
|
|
plugins {
|
|
id 'org.jetbrains.intellij' version '0.4.18'
|
|
}
|
|
|
|
apply plugin: 'java'
|
|
apply plugin: 'kotlin'
|
|
|
|
sourceCompatibility = javaVersion
|
|
targetCompatibility = javaVersion
|
|
|
|
tasks.withType(JavaCompile) { options.encoding = 'UTF-8' }
|
|
|
|
sourceSets {
|
|
main {
|
|
java.srcDir 'src'
|
|
resources.srcDir 'resources'
|
|
}
|
|
test {
|
|
java.srcDir 'test'
|
|
}
|
|
}
|
|
|
|
intellij {
|
|
version ideaVersion
|
|
pluginName 'IdeaVim'
|
|
updateSinceUntilBuild false
|
|
downloadSources Boolean.valueOf(downloadIdeaSources)
|
|
instrumentCode Boolean.valueOf(instrumentPluginCode)
|
|
intellijRepo = "https://www.jetbrains.com/intellij-repository"
|
|
plugins = ['java']
|
|
|
|
publishPlugin {
|
|
channels publishChannels.split(',')
|
|
username publishUsername
|
|
token publishToken
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
dependencies {
|
|
compileOnly "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion"
|
|
compileOnly "org.jetbrains:annotations:19.0.0"
|
|
}
|
|
|
|
compileKotlin {
|
|
kotlinOptions {
|
|
jvmTarget = javaVersion
|
|
}
|
|
}
|
|
compileTestKotlin {
|
|
kotlinOptions {
|
|
jvmTarget = javaVersion
|
|
}
|
|
}
|
|
|
|
tasks.register("slackEapNotification") {
|
|
doLast {
|
|
if (!slackUrl) return
|
|
def post = new URL(slackUrl).openConnection()
|
|
def changeLog = extractChangelog()
|
|
changeLog = changeLog.replace("* ", "• ") // Replace stars with bullets
|
|
changeLog = changeLog.replace("**", "*") // Enable bold text
|
|
changeLog = changeLog.replaceAll("\\[([^]]+)]\\(([^)]+)\\)", '<$2|$1>') // Enable links
|
|
def message ="""
|
|
{
|
|
"text": "New version of IdeaVim",
|
|
"blocks": [
|
|
{
|
|
"type": "section",
|
|
"text": {
|
|
"type": "mrkdwn",
|
|
"text": "IdeaVim EAP $version has been relesed\\n$changeLog"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
"""
|
|
post.setRequestMethod("POST")
|
|
post.setDoOutput(true)
|
|
post.setRequestProperty("Content-Type", "application/json")
|
|
post.getOutputStream().write(message.getBytes("UTF-8"))
|
|
def postRC = post.getResponseCode()
|
|
println(postRC)
|
|
if(postRC == 200) {
|
|
println(post.getInputStream().getText())
|
|
}
|
|
}
|
|
}
|
|
|
|
// Very primitive changelog extraction code
|
|
def extractChangelog() {
|
|
def startLine = "_Available since $version EAP:_"
|
|
def endLine = "_To Be Released..._"
|
|
def startSaving = false
|
|
def res = new StringBuilder()
|
|
new File("./CHANGES.md").eachLine { line ->
|
|
if (startSaving) {
|
|
if (line == endLine) {
|
|
startSaving = false
|
|
}
|
|
else {
|
|
res.append(line).append('\n')
|
|
}
|
|
}
|
|
else {
|
|
if (line == startLine) {
|
|
startSaving = true
|
|
}
|
|
}
|
|
}
|
|
return res.toString()
|
|
} |