Permalink
8c59fb2 Oct 14, 2016
@zolotov @ignatov @stuartcarnie @dlsniper
154 lines (138 sloc) 3.87 KB
/*
* Copyright 2013-2016 Sergey Ignatov, Alexander Zolotov, Florin Patan
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
buildscript {
repositories {
maven { url 'http://dl.bintray.com/jetbrains/intellij-plugin-service' }
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}
dependencies {
classpath "org.jetbrains.intellij.plugins:gradle-intellij-plugin:0.2.0-SNAPSHOT"
}
}
plugins {
id "de.undercouch.download" version "3.1.0"
}
apply plugin: 'de.undercouch.download'
version = "${version}.$buildNumber"
allprojects {
apply plugin: 'java'
sourceCompatibility = javaVersion
targetCompatibility = javaTargetVersion
tasks.withType(JavaCompile) { options.encoding = 'UTF-8' }
sourceSets {
main {
java.srcDirs 'src', 'gen'
resources.srcDirs 'resources', 'pluginResources'
}
test {
java.srcDir 'tests'
}
}
apply plugin: 'org.jetbrains.intellij'
intellij {
version ideaVersion
pluginName 'Go'
plugins 'coverage'
downloadSources Boolean.valueOf(sources)
sameSinceUntilBuild Boolean.valueOf(isEAP)
alternativeIdePath localIdePath
systemProperty 'dlv.path', customDlvPath
}
}
publishPlugin {
username publishUsername
password publishPassword
channels publishChannel
}
patchPluginXml {
if (customSinceBuild) {
sinceBuild customSinceBuild
}
}
apply plugin: 'idea'
idea {
project {
jdkName = javaVersion
languageLevel = javaVersion
vcs = 'Git'
}
module {
generatedSourceDirs += file('gen')
}
}
repositories { maven { url "http://dl.bintray.com/jetbrains/golang" } }
dependencies {
compile project(':utils'), project(':google-app-engine'), project(':google-app-engine:google-app-engine-yaml'), project(':plan9')
runtime "com.jetbrains:delve:$delveVersion@zip"
}
// delve packing
project.afterEvaluate {
prepareSandbox.doLast {
def libraries = "$it.destinationDir/$intellij.pluginName/lib/"
def delveFile = fileTree(dir: libraries, include: 'delve*').singleFile
copy {
from zipTree(delveFile)
into libraries
}
delveFile.delete()
}
}
test {
useJUnit {
excludeCategories 'com.goide.categories.Performance'
}
testLogging {
exceptionFormat = 'full'
}
}
task preparePerformanceTestData << {
downloadAndUnzip('https://storage.googleapis.com/golang/go1.5.1.src.tar.gz', 'go', 'go')
downloadAndUnzip('https://github.com/docker/docker/archive/v1.9.1.tar.gz', 'docker-1.9.1', 'docker')
}
task performanceTest(type: Test, group: 'Verification', dependsOn: [classes, testClasses, preparePerformanceTestData]) {
maxHeapSize = '512m'
minHeapSize = '256m'
useJUnit {
includeCategories 'com.goide.categories.Performance'
reports.html.destination = "$buildDir/reports/performanceTests"
}
testLogging {
exceptionFormat = 'full'
}
}
check.dependsOn performanceTest
private void downloadAndUnzip(url, sourceDir, targetDir) {
def testDataPath = "$projectDir/testData/performance/"
def markerFile = file("$testDataPath/$targetDir/markerFile")
def tmpPath = "$testDataPath/tmp/"
def tar = file("$tmpPath/${targetDir}.tar.gz")
if (!markerFile.exists()) {
download {
src url
dest tar
}
copy {
from tarTree(tar)
into tmpPath
}
copy {
from "$tmpPath/$sourceDir"
into "$testDataPath/$targetDir"
}
markerFile.createNewFile()
}
delete file(tmpPath)
}