From f51b61a178be9d4aef9692b23a3dc57221934a69 Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Fri, 31 Mar 2017 14:31:11 +0700 Subject: [PATCH] gradle-plugin: Upload to bintray maven repository --- .gitignore | 1 + samples/csvparser/build.gradle | 8 ++-- samples/gitchurn/build.gradle | 11 +++--- samples/gradle-plugin.jar | Bin 50703 -> 0 bytes samples/libcurl/build.gradle | 9 +++-- samples/opengl/build.gradle | 9 +++-- samples/socket/build.gradle | 9 +++-- samples/tetris/build.gradle | 31 ++++++++------- tools/gradle-plugin/build.gradle | 63 ++++++++++++++++++++++--------- 9 files changed, 90 insertions(+), 51 deletions(-) delete mode 100644 samples/gradle-plugin.jar diff --git a/.gitignore b/.gitignore index e64da9ed6d5..8baa6ecf0d7 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,7 @@ kotstd/kotstd.iml *.kt.exe *.log test.output +*.kexe # Ignore Gradle GUI config gradle-app.setting diff --git a/samples/csvparser/build.gradle b/samples/csvparser/build.gradle index 7fec0cce7a0..9d47de7f388 100644 --- a/samples/csvparser/build.gradle +++ b/samples/csvparser/build.gradle @@ -1,12 +1,13 @@ buildscript { - ext.kotlin_version = '1.1.1' repositories { mavenCentral() + maven { + url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies" + } } dependencies { - classpath files('../gradle-plugin.jar') - classpath "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + classpath "org.jetbrains.kotlin:kotlin-native-gradle-plugin:0.1" } } @@ -25,7 +26,6 @@ konanArtifacts { } } - build { doLast { copy { diff --git a/samples/gitchurn/build.gradle b/samples/gitchurn/build.gradle index 3e2b4edeebf..ff0cb7a5cbc 100644 --- a/samples/gitchurn/build.gradle +++ b/samples/gitchurn/build.gradle @@ -1,12 +1,13 @@ buildscript { - ext.kotlin_version = '1.1.1' repositories { mavenCentral() + maven { + url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies" + } } dependencies { - classpath files('../gradle-plugin.jar') - classpath "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + classpath "org.jetbrains.kotlin:kotlin-native-gradle-plugin:0.1" } } @@ -21,7 +22,7 @@ konanInterop { } konanArtifacts { - gitchurn { + GitChurn { inputFiles project.fileTree('src') useInterop 'libgit2' linkerOpts "-L/opt/local/lib -L/usr/lib/x86_64-linux-gnu -L/usr/local/lib -lgit2" @@ -32,7 +33,7 @@ konanArtifacts { build { doLast { copy { - from compileKonanGitchurn.artifactPath + from compileKonanGitChurn.artifactPath into projectDir.canonicalPath } } diff --git a/samples/gradle-plugin.jar b/samples/gradle-plugin.jar deleted file mode 100644 index eca9734f99708f3185c27fecf1ae5d45469f821d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50703 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 to build the project. + * e.g. ./gradlew buildMacbook + */ + buildscript { - ext.kotlin_version = '1.1.1' repositories { mavenCentral() + maven { + url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies" + } } dependencies { - classpath files('../gradle-plugin.jar') - classpath "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + classpath "org.jetbrains.kotlin:kotlin-native-gradle-plugin:0.1" } } @@ -41,7 +47,7 @@ konanInterop { } konanArtifacts { - tetrisMacbook { + TetrisMacbook { inputFiles project.file('Tetris.kt') useInterop 'sdlMacbook' //linkerOpts "-F /Library/Frameworks -framework SDL2 -L/opt/local/lib -lSDL2" @@ -49,7 +55,7 @@ konanArtifacts { target 'macbook' } - tetrisLinux { + TetrisLinux { inputFiles project.file('Tetris.kt') useInterop 'sdlLinux' @@ -57,7 +63,7 @@ konanArtifacts { target 'linux' } - tetrisIphone { + TetrisIphone { inputFiles project.file('Tetris.kt') useInterop 'sdlIphone' @@ -69,7 +75,7 @@ konanArtifacts { target 'iphone' } - tetrisRaspberry { + TetrisRaspberry { inputFiles project.file('Tetris.kt') useInterop 'sdlRaspberry' @@ -79,11 +85,10 @@ konanArtifacts { } -tasks.matching { it.name.startsWith("compileKonan") }.forEach { task -> - task.doLast { - copy { - from task.artifactPath - into projectDir.canonicalPath - } +tasks.matching { it.name.startsWith("compileKonan") }.asList().forEach { compileTask -> + task ("build${compileTask.name - "compileKonanTetris"}", type: Copy) { + dependsOn(compileTask) + from compileTask.artifactPath + destinationDir projectDir } } \ No newline at end of file diff --git a/tools/gradle-plugin/build.gradle b/tools/gradle-plugin/build.gradle index 8b86039b439..3e0fbafc50a 100644 --- a/tools/gradle-plugin/build.gradle +++ b/tools/gradle-plugin/build.gradle @@ -1,15 +1,24 @@ +/** + * One may use bintrayUser/bintrayKey project properties or BINTRAY_USER/BINTRAY_KEY environment variables to upload + * built plugin to bintray repository. + */ + buildscript { repositories { mavenCentral() + jcenter() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3' } } -apply plugin: "java" -apply plugin: "kotlin" +apply plugin: 'java' +apply plugin: 'kotlin' +apply plugin: 'maven-publish' +apply plugin: 'com.jfrog.bintray' // TODO: move this code to top level (the same for backend.native) // Copied from backend.native @@ -55,20 +64,40 @@ jar { from (rootProject.findProject(':tools:helpers').sourceSets.main.output) } -task dist(type: Copy) { - dependsOn(jar) - destinationDir project.file('dist') - from jar.outputs.files -} - -task copy_to_samples(type: Copy) { - dependsOn(dist) - destinationDir rootProject.file('samples') - from dist.outputs.files -} - -clean { - doFirst { - delete project.file('dist') +publishing { + publications { + gradlePlugin(MavenPublication) { + artifact jar + groupId 'org.jetbrains.kotlin' + artifactId 'kotlin-native-gradle-plugin' + version '0.1' + pom.withXml { XmlProvider xml -> + def stdlibDep = xml.asNode().appendNode("dependencies").appendNode("dependency") + stdlibDep.appendNode("groupId", "org.jetbrains.kotlin") + stdlibDep.appendNode("artifactId", "kotlin-stdlib") + stdlibDep.appendNode("version", "$kotlin_version") + } + } } +} + + +bintray { + user = project.hasProperty('bintrayUser') ? project.property('bintrayUser') : System.getenv('BINTRAY_USER') + key = project.hasProperty('bintrayKey') ? project.property('bintrayKey') : System.getenv('BINTRAY_KEY') + pkg { + repo = 'kotlin-native-dependencies' + name = 'kotlin-native-gradle-plugin' + userOrg = 'jetbrains' + // TODO: Specify license and github path + //licenses = ['Apache-2.0'] + //vcsUrl = 'https://github.com/...' + version { + name = '0.1' + desc = 'Kotlin Native Gradle plugin 0.1' + } + publish = true + override = true + } + publications = ['gradlePlugin'] } \ No newline at end of file