/*
 * Copyright 2012 ish group pty ltd
 *
 * 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 {
		mavenCentral()
	}
	dependencies {
        classpath 'au.com.ish.gradle:release:2.1.2'
	}
}

apply plugin: 'groovy'
apply plugin: 'maven'
apply plugin: 'signing'

apply plugin: 'release'
release {
    //use git scm, unless otherwise specified in with -PscmFlavour= or in users gradle properties
    scm = 'git'
    failOnSnapshotDependencies = false

    //properties for svn access
    username = project.hasProperty('username') ? project.username : ''
    password = project.hasProperty('password') ? project.password : ''

    //the following two params have to be converted from string to boolean
    releaseDryRun = project.hasProperty('releaseDryRun') ? project.releaseDryRun=='true' : ''
    allowLocalModifications = project.hasProperty('allowLocalModifications') ? project.allowLocalModifications='true' : ''
}
version = release.projectVersion

group = 'au.com.ish.gradle'

repositories {
	mavenCentral()
}

dependencies {
	compile gradleApi()
	compile 'org.tmatesoft.svnkit:svnkit:1.8.12'
	compile 'org.eclipse.jgit:org.eclipse.jgit:4.4.0.201606070830-r'
	testCompile 'junit:junit:4.12'
}

task sourcesJar(type: Jar, dependsOn: classes) {
	 classifier = 'sources'
	 from sourceSets.main.allSource
}

task javadocJar(type: Jar, dependsOn: javadoc) {
	 classifier = 'javadoc'
	 from javadoc.destinationDir
}

artifacts {
	 archives sourcesJar
	 archives javadocJar
}

signing {
	required = { gradle.taskGraph.hasTask("uploadArchives") && !version.endsWith("SNAPSHOT") }
	sign configurations.archives
}

uploadArchives.repositories.mavenDeployer {
	uniqueVersion = false

	beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }

	snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
		authentication(userName: sonatypeUsername, password: sonatypePassword)
	}

	repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
		authentication(userName: sonatypeUsername, password: sonatypePassword)
	}

	pom.project {
		name 'Gradle Release plugin'
		packaging 'jar'
		description 'The Gradle Release plugin.'
		url 'http://github.com/ari/gradle-release-plugin'
		inceptionYear '2012'

		scm {
			developerConnection 'git@github.com:ari/gradle-release-plugin.git'
			connection 'git://github.com/ari/gradle-release-plugin.git'
			url 'https://github.com/ari/gradle-release-plugin'
		}

		licenses {
			license {
				name 'The Apache Software License, Version 2.0'
				url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
				distribution 'repo'
			}
		}
		developers {
			developer {
				id 'ari'
				name 'Ari Maniatis'
				email 'ari@ish.com.au'
				roles {
					role 'Developer'
				}
				timezone '+10'
			}
		}
	}
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.14'
}
