|
1 | | -buildscript { |
2 | | - dependencies { classpath group: 'no.entitas.gradle', name: 'gradle-release-plugin', version: '1.11' } |
| 1 | + |
| 2 | +apply plugin: 'release' |
| 3 | + |
| 4 | +// Ignore release plugin's task because it calls out via GradleBuild. This is a good place to put an email to send out |
| 5 | +task release(overwrite: true, dependsOn: commitNewVersion) << { |
| 6 | + // This is a good place to put an email to send out |
| 7 | +} |
| 8 | +commitNewVersion.dependsOn updateVersion |
| 9 | +updateVersion.dependsOn createReleaseTag |
| 10 | +createReleaseTag.dependsOn preTagCommit |
| 11 | +def buildTasks = tasks.matching { it.name =~ /:build/ } |
| 12 | +preTagCommit.dependsOn buildTasks |
| 13 | +preTagCommit.dependsOn checkSnapshotDependencies |
| 14 | +//checkSnapshotDependencies.dependsOn confirmReleaseVersion // Introduced in 1.0, forces readLine |
| 15 | +//confirmReleaseVersion.dependsOn unSnapshotVersion |
| 16 | +checkSnapshotDependencies.dependsOn unSnapshotVersion // Remove once above is fixed |
| 17 | +unSnapshotVersion.dependsOn checkUpdateNeeded |
| 18 | +checkUpdateNeeded.dependsOn checkCommitNeeded |
| 19 | +checkCommitNeeded.dependsOn initScmPlugin |
| 20 | + |
| 21 | +// Call out to compile against internal repository |
| 22 | +task uploadArtifactory(type: GradleBuild) { |
| 23 | + startParameter = project.gradle.startParameter.newInstance() |
| 24 | + startParameter.addInitScript( file('gradle/netflix-oss.gradle') ) |
| 25 | + startParameter.getExcludedTaskNames().add('check') |
| 26 | + tasks = [ 'build', 'artifactoryPublish' ] |
3 | 27 | } |
4 | 28 |
|
5 | | -apply plugin: no.entitas.gradle.git.GitReleasePlugin // 'gitrelease' |
| 29 | +task buildWithArtifactory(type: GradleBuild) { |
| 30 | + startParameter = project.gradle.startParameter.newInstance() |
| 31 | + startParameter.addInitScript( file('gradle/netflix-oss.gradle') ) |
| 32 | + startParameter.getExcludedTaskNames().add('check') |
| 33 | + tasks = [ 'build' ] |
| 34 | +} |
6 | 35 |
|
| 36 | +// Ensure upload happens before taggging but after all pre-checks |
| 37 | +uploadArtifactory.dependsOn checkSnapshotDependencies |
| 38 | +createReleaseTag.dependsOn uploadArtifactory |
| 39 | +gradle.taskGraph.whenReady { taskGraph -> |
| 40 | + if ( taskGraph.hasTask(uploadArtifactory) && !taskGraph.hasTask(':release') ) { |
| 41 | + throw new GradleException('"release" task has to be run before uploading to Artifactory') |
| 42 | + } |
| 43 | +} |
| 44 | +subprojects.each { project -> |
| 45 | + project.uploadMavenCentral.dependsOn rootProject.checkSnapshotDependencies |
| 46 | + rootProject.createReleaseTag.dependsOn project.uploadMavenCentral |
| 47 | + |
| 48 | + gradle.taskGraph.whenReady { taskGraph -> |
| 49 | + if ( taskGraph.hasTask(project.uploadMavenCentral) && !taskGraph.hasTask(':release') ) { |
| 50 | + throw new GradleException('"release" task has to be run before uploading to Maven Central') |
| 51 | + } |
| 52 | + } |
| 53 | +} |
| 54 | + |
| 55 | +// Prevent plugin from asking for a version number interactively |
| 56 | +ext.'gradle.release.useAutomaticVersion' = "true" |
| 57 | + |
| 58 | +release { |
| 59 | + // http://tellurianring.com/wiki/gradle/release |
| 60 | + failOnCommitNeeded=false |
| 61 | + failOnPublishNeeded=false |
| 62 | + failOnUnversionedFiles=false |
| 63 | + failOnUpdateNeeded=false |
| 64 | +} |
0 commit comments