diff --git a/.gitignore b/.gitignore index 4f714a0a..adad25d0 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ target/ build/ *.iml/ .idea/ +gradle.properties diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..b0120079 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,14 @@ +jdk: openjdk8 +language: groovy + +branches: + only: + - /.*/ + +before_install: + - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then + openssl aes-256-cbc -K $encrypted_80297b79dae4_key -iv $encrypted_80297b79dae4_iv + -in gradle.properties.enc -out gradle.properties -d; + fi + +script: ./buildViaTravis.sh diff --git a/build.gradle b/build.gradle index a62e819b..d0799c72 100644 --- a/build.gradle +++ b/build.gradle @@ -1,28 +1,67 @@ +buildscript { + repositories { + jcenter() + } + + dependencies { + classpath "org.jetbrains.dokka:dokka-gradle-plugin:0.9.17" + } +} + plugins { - id 'org.jetbrains.kotlin.jvm' version '1.3.31' + // plugin dependencies, load without applying them + id 'nebula.kotlin' version '1.3.41' apply false + id 'com.jfrog.artifactory' version '4.6.2' apply false + + id 'nebula.contacts' version '4.1.1' apply false + id 'nebula.info' version '4.0.2' apply false + id 'nebula.dependency-lock' version '6.1.2' apply false + id 'nebula.facet' version '5.1.2' apply false + id 'nebula.maven-apache-license' version '9.0.2' apply false + + id 'nebula.maven-publish' version '9.0.2' apply false + id 'nebula.release' version '8.0.3' apply false + id 'nebula.nebula-bintray' version '4.0.2' apply false + id 'nebula.source-jar' version '9.0.2' apply false } -allprojects { - group 'org.openrndr.extra' - version '0.0.30' -} -repositories { - mavenLocal() - mavenCentral() -} +//allprojects { +// group 'org.openrndr.extra' +// version '0.0.30' +//} +// +//repositories { +// mavenLocal() +// mavenCentral() +//} -ext { +project.ext { openrndrVersion = "0.3.35-rc1" } -subprojects { +allprojects { + + + apply plugin: 'idea' + apply plugin: 'java' + apply plugin: 'nebula.kotlin' + apply plugin: 'nebula.contacts' + apply plugin: 'nebula.info' + apply plugin: 'nebula.dependency-lock' + apply plugin: 'nebula.facet' + apply plugin: 'nebula.maven-apache-license' + apply plugin: 'nebula.release' + apply plugin: 'nebula.maven-publish' + + // selectively apply only the bintray plugin, snapshots are not published + // nebula-bintray needs to happened after nebula-release since version isn't lazy in the bintray extension + apply plugin: 'nebula.nebula-bintray-publishing' + apply plugin: 'nebula.source-jar' + + group 'org.openrndr.extra' - apply plugin: 'kotlin' - apply plugin: 'maven' - apply plugin: 'maven-publish' repositories { - mavenLocal() mavenCentral() maven { url = "https://dl.bintray.com/openrndr/openrndr" @@ -36,35 +75,25 @@ subprojects { compile group: 'org.jetbrains.kotlinx', name: 'kotlinx-coroutines-core', version: '1.3.0-RC' } - publishing { - publications { - mavenJava(MavenPublication) { - from components.java - artifact sourceJar - } + contacts { + 'edwin@openrndr.org' { + moniker 'Edwin Jakobs' + github 'edwinRNDR' } } - task sourceJar(type: Jar) { - classifier = 'sources' - from sourceSets.main.kotlin + bintray { + pkg { + userOrg = 'openrndr' + repo = 'openrndr' + name = 'orx' + desc = project.description + licenses = ['BSD-2-Clause'] + vcsUrl = 'https://github.com/openrndr/openrndr.git' + websiteUrl = 'https://www.openrndr.org' + issueTrackerUrl = 'https://github.com/openrndr/openrndr/issues' + labels = ['creative-coding', 'realtime-rendering', 'opengl'] + } } - compileKotlin { - kotlinOptions.jvmTarget = "1.8" - } - compileTestKotlin { - kotlinOptions.jvmTarget = "1.8" - } -} - -dependencies { - compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8" -} - -compileKotlin { - kotlinOptions.jvmTarget = "1.8" -} -compileTestKotlin { - kotlinOptions.jvmTarget = "1.8" } \ No newline at end of file diff --git a/buildViaTravis.sh b/buildViaTravis.sh new file mode 100755 index 00000000..d8eef36a --- /dev/null +++ b/buildViaTravis.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# This script will build the project. + +if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then + echo -e "Build Pull Request #$TRAVIS_PULL_REQUEST => Branch [$TRAVIS_BRANCH]" + ./gradlew build +elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_TAG" == "" ]; then + echo -e 'Build Branch without Snapshot => Branch ['$TRAVIS_BRANCH']' + ./gradlew -Prelease.travisci=true build --info +elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_TAG" != "" ]; then + echo -e 'Build Branch for Release => Branch ['$TRAVIS_BRANCH'] Tag ['$TRAVIS_TAG']' + case "$TRAVIS_TAG" in + *-rc\.*) + ./gradlew -Prelease.travisci=true -Prelease.useLastTag=true candidate --info + ;; + *) + ./gradlew -Prelease.travisci=true -Prelease.useLastTag=true final --info + ;; + esac +else + echo -e 'WARN: Should not be here => Branch ['$TRAVIS_BRANCH'] Tag ['$TRAVIS_TAG'] Pull Request ['$TRAVIS_PULL_REQUEST']' + ./gradlew build +fi diff --git a/gradle.properties.enc b/gradle.properties.enc new file mode 100644 index 00000000..2957676e --- /dev/null +++ b/gradle.properties.enc @@ -0,0 +1 @@ + ghx;B?˛m>!Rl?