Skip to content

Commit

Permalink
feat: increase gradle-git and jcabi-github versions
Browse files Browse the repository at this point in the history
Closes #15
  • Loading branch information
tschulte committed Aug 10, 2016
1 parent 34fecef commit 906c37d
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 15 deletions.
4 changes: 2 additions & 2 deletions compile-dependencies.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
dependencies {
compile localGroovy()
compile gradleApi()
compile "org.ajoberstar:gradle-git:1.3.0"
compile "com.jcabi:jcabi-github:0.23"
compile "org.ajoberstar:gradle-git:1.5.1"
compile "com.jcabi:jcabi-github:0.28"
}
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,8 @@ class SemanticReleaseChangeLogService {
*/
Closure<Writable> changeLog = { List<Commit> commits, ReleaseVersion version ->
String previousVersion = Version.valueOf(version.previousVersion).majorVersion ? version.previousVersion : null
String previousTag = (previousVersion && tagStrategy.prefixNameWithV) ? "v$previousVersion" : previousVersion
String currentTag = version.createTag ? (tagStrategy.prefixNameWithV ? "v$version.version" : version.version) : null
String previousTag = tagStrategy.toTagString(previousVersion)
String currentTag = version.createTag ? tagStrategy.toTagString(version.version) : null
Template template = new SimpleTemplateEngine().createTemplate(getClass().getResource('/CHANGELOG.md'))
template.make([
title : null,
Expand Down Expand Up @@ -213,7 +213,7 @@ class SemanticReleaseChangeLogService {
grgit.log {
includes << 'HEAD'
if (previousVersion.majorVersion) {
String previousVersionString = (tagStrategy.prefixNameWithV ? 'v' : '') + previousVersion.toString()
String previousVersionString = tagStrategy.toTagString(previousVersion.toString())
// range previousVersionString, 'HEAD' does not work: https://github.com/ajoberstar/grgit/issues/71
excludes << "${previousVersionString}^{commit}".toString()
}
Expand All @@ -227,13 +227,14 @@ class SemanticReleaseChangeLogService {
return
if (!github)
return
String tag = tagStrategy.prefixNameWithV ? "v$version.version" : "$version.version"
String tag = tagStrategy.toTagString(version.version)

Repo repo = github.repos().get(new Coordinates.Simple(mnemo))

// check for the existance of the tag using the api -> #3
long start = System.currentTimeMillis()
while(!tagExists(repo, tag) && System.currentTimeMillis() - start < 60000) {}
while (!tagExists(repo, tag) && System.currentTimeMillis() - start < 60000) {
}

Release release = repo.releases().create(tag)
new Release.Smart(release).body(changeLog(commits(Version.valueOf(version.previousVersion)), version).toString())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
package de.gliderpilot.gradle.semanticrelease

import groovy.transform.Memoized
import org.ajoberstar.gradle.git.release.base.TagStrategy
import org.ajoberstar.gradle.git.release.semver.NearestVersion
import org.ajoberstar.gradle.git.release.semver.NearestVersionLocator
import org.ajoberstar.gradle.git.release.semver.SemVerStrategyState
Expand All @@ -30,14 +31,16 @@ class SemanticReleaseInitialStateService {
private static final Logger logger = LoggerFactory.getLogger(SemanticReleaseInitialStateService)

private Grgit grgit
private TagStrategy tagStrategy

SemanticReleaseInitialStateService(Grgit grgit) {
SemanticReleaseInitialStateService(Grgit grgit, TagStrategy tagStrategy) {
this.grgit = grgit
this.tagStrategy = tagStrategy
}

@Memoized
SemVerStrategyState initialState() {
NearestVersionLocator locator = new NearestVersionLocator()
NearestVersionLocator locator = new NearestVersionLocator(tagStrategy)
NearestVersion nearestVersion = locator.locate(grgit)
SemVerStrategyState initialState = new SemVerStrategyState(
scopeFromProp: null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class SemanticReleasePluginExtension {
branchNames = new SemanticReleaseAppendBranchNameStrategy(releaseBranches)
semanticStrategy = new SemanticReleaseNormalStrategy(project.grgit, changeLog)
releaseStrategy = new SemanticReleaseStrategy(
initialStateService: new SemanticReleaseInitialStateService(project.grgit),
initialStateService: new SemanticReleaseInitialStateService(project.grgit, project.release.tagStrategy),
normalStrategy: semanticStrategy,
createTag: true,
selector: this.&isRelease
Expand All @@ -55,7 +55,8 @@ class SemanticReleasePluginExtension {
branchNames,
appendSnapshot()
),
createTag: false
createTag: false,
selector: { true }
)

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ package de.gliderpilot.gradle.semanticrelease

import com.jcabi.github.Coordinates
import com.jcabi.github.Release
import com.jcabi.github.Repos
import com.jcabi.github.RtGithub
import com.jcabi.github.mock.MkGithub
import org.ajoberstar.gradle.git.release.base.ReleaseVersion
Expand All @@ -28,8 +29,6 @@ import spock.lang.Subject
import spock.lang.Timeout
import spock.lang.Unroll

import javax.json.Json

import static org.ajoberstar.gradle.git.release.semver.ChangeScope.*

/**
Expand Down Expand Up @@ -226,7 +225,7 @@ class SemanticReleaseChangeLogServiceSpec extends Specification {
String user = mnemo.substring(0, mnemo.indexOf("/"))
String repo = mnemo.substring(mnemo.indexOf("/") + 1)
changeLogService.github = new MkGithub(user)
changeLogService.github.repos().create(Json.createObjectBuilder().add("name", repo).build())
changeLogService.github.repos().create(new Repos.RepoCreate(repo, false))
def coordinates = new Coordinates.Simple("$mnemo")
changeLogService.github.repos().get(coordinates).git().references().create("refs/tags/v1.0.0", "affe")
changeLogService.changeLog = { List<Commit> commits, ReleaseVersion version ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ package de.gliderpilot.gradle.semanticrelease

import com.github.zafarkhaja.semver.Version
import groovy.mock.interceptor.MockFor
import org.ajoberstar.gradle.git.release.base.TagStrategy
import org.ajoberstar.gradle.git.release.semver.NearestVersion
import org.ajoberstar.gradle.git.release.semver.NearestVersionLocator
import org.ajoberstar.gradle.git.release.semver.SemVerStrategyState
Expand All @@ -32,7 +33,7 @@ class SemanticReleaseInitialStateServiceSpec extends Specification {
Grgit grgit = Grgit.open()

@Subject
SemanticReleaseInitialStateService service = new SemanticReleaseInitialStateService(grgit)
SemanticReleaseInitialStateService service = new SemanticReleaseInitialStateService(grgit, new TagStrategy())

def "retrieves initialState using NearestVersionLocator"() {
given:
Expand Down

0 comments on commit 906c37d

Please sign in to comment.