Skip to content
This repository has been archived by the owner on Feb 11, 2022. It is now read-only.

Commit

Permalink
Merge pull request #22 from novoda/release/prepare_v0.3.1
Browse files Browse the repository at this point in the history
Release v0.3.1
  • Loading branch information
florianmski committed Feb 8, 2017
2 parents 7955a71 + aae61e3 commit 2f1c103
Show file tree
Hide file tree
Showing 5 changed files with 108 additions and 5 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,6 @@ local.properties

# Generated files
gen/

# Properties files
secrets.properties
11 changes: 8 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
Change Log
==========

Version 0.3 *(27/01/2017)*
[Version 0.3.1](https://github.com/novoda/gradle-static-analysis-plugin/releases/tag/v0.3.1)
--------------------------

- Honour exclude filters in Findbugs tasks ([PR#20](https://github.com/novoda/gradle-static-analysis-plugin/pull/20))

[Version 0.3](https://github.com/novoda/gradle-static-analysis-plugin/releases/tag/v0.3)
--------------------------

- Honour project variants when creating tasks for Checkstyle and PMD ([PR#16](https://github.com/novoda/gradle-static-analysis-plugin/pull/16))

Version 0.2 *(14/11/2016)*
[Version 0.2](https://github.com/novoda/gradle-static-analysis-plugin/releases/tag/v0.2)
--------------------------

- Improved `exclude` rules support ([PR#8](https://github.com/novoda/gradle-static-analysis-plugin/pull/8))
- Enforced default effort and report level for Findbugs ([PR#6](https://github.com/novoda/gradle-static-analysis-plugin/pull/6))

Version 0.1 *(09/11/2016)*
[Version 0.1](https://github.com/novoda/gradle-static-analysis-plugin/releases/tag/v0.1)
--------------------------

- Initial release.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.novoda:gradle-static-analysis-plugin:0.3'
classpath 'com.novoda:gradle-static-analysis-plugin:0.3.1'
}
}
```
Expand Down
2 changes: 2 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ subprojects {
}
dependencies {
classpath 'com.novoda:bintray-release:0.4.0'
classpath 'com.novoda:gradle-build-properties-plugin:0.2'
classpath 'org.ajoberstar:gradle-git:1.6.0'
}
}

Expand Down
95 changes: 94 additions & 1 deletion gradle/publish.gradle
Original file line number Diff line number Diff line change
@@ -1,9 +1,102 @@
version = '0.3.1'
String tag = "v$project.version"
groovydoc.docTitle = 'Static Analysis Plugin'

apply plugin: 'com.novoda.bintray-release'
publish {
userOrg = 'novoda'
groupId = 'com.novoda'
artifactId = 'gradle-static-analysis-plugin'
publishVersion = '0.3'
publishVersion = project.version
website = 'https://github.com/novoda/gradle-static-analysis-plugin'
}

apply plugin: 'com.novoda.build-properties'
buildProperties {
secrets {
file(rootProject.file('secrets.properties'), '''
This file should contain:
- git.username: the username used to push to the repo
- git.password: the password used to push to the repo
''')
}
}

apply plugin: 'org.ajoberstar.grgit'
apply plugin: 'org.ajoberstar.github-pages'

githubPages {
commitMessage = "Deploy groovydoc for release $tag"
pages {
from groovydoc.destinationDir
into "docs/${project.version}"
}
}

task prepareGhCredentials {
description = 'Prepare GitHub credentials'
group = 'release'
doLast {
System.properties['org.ajoberstar.grgit.auth.username'] = buildProperties.secrets['git.username'].string
System.properties['org.ajoberstar.grgit.auth.password'] = buildProperties.secrets['git.password'].string
}
}

prepareGhPages.dependsOn groovydoc
publishGhPages.dependsOn prepareGhCredentials

task prepareRelease {
description = 'Prepare changelog and tag for release'
group = 'release'
dependsOn prepareGhPages, prepareGhCredentials
doLast {
String changelog = extractChangelog()
grgit.tag.add {
name = tag
message = "Release $tag\n\n$changelog"
}
}
}

String extractChangelog() {
String fullChangelog = rootProject.file('CHANGELOG.md').text
def latestChangelog = (fullChangelog =~ /Version ${project.version}.*\n-*([\s\S]*?)Version.*\n-*/)
if (latestChangelog.size() > 0) {
return latestChangelog[0][1].trim()
}

def firstChangelog = (fullChangelog =~ /Version ${project.version}.*\n-*([\s\S]*)/)
if (firstChangelog.size() > 0) {
return firstChangelog[0][1].trim()
}
throw new GradleException("No changelog found for version $project.version")
}

task publishArtifact {
description = "Publish artifact for plugin version: $tag"
group = 'release'
project.afterEvaluate { dependsOn bintrayUpload }
mustRunAfter prepareRelease
}

task publishGroovydoc {
description = "Deploy groovydoc for plugin version: $tag"
group = 'release'
dependsOn publishGhPages
mustRunAfter publishArtifact
}

task publishRelease {
description = "Publish release for plugin version: $tag"
group = 'release'
if (project.hasProperty('dryRun') && project['dryRun'] == 'false') {
dependsOn prepareRelease, publishArtifact, publishGroovydoc
doLast {
grgit.push {
tags = true
}
}
} else {
dependsOn publishArtifact
}
}

0 comments on commit 2f1c103

Please sign in to comment.