Skip to content

Commit

Permalink
adds option to create new rc version in incrementPrerelase incrementor
Browse files Browse the repository at this point in the history
* [issue #286] Create rc1 in case of no rc version in incrementPrerelase strategy
* [issue #286] initialPreReleaseIfNotOnPrerelease to create rc version, old behavior when absent
  • Loading branch information
krzysiekbielicki authored and adamdubiel committed Mar 29, 2019
1 parent 4b84950 commit afbceb2
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 3 deletions.
11 changes: 10 additions & 1 deletion docs/configuration/version.md
Expand Up @@ -195,7 +195,7 @@ number is incremented. There are other predefined rules:
- *incrementMinorIfNotOnRelease* - increment patch number if on
release branch. Increment minor otherwise
- *incrementPrerelease* - increment pre-release suffix if possible
(-rc1 to -rc2). Increment patch otherwise
(-rc1 to -rc2). Add `initialPreReleaseIfNotOnPrerelease` to increment patch with prerelase version. Increment patch otherwise

You can set one of predefined rules via `scmVersion.versionIncrementer`
method:
Expand Down Expand Up @@ -253,6 +253,15 @@ it's set to `release/.+`):
versionIncrementer 'incrementMinorIfNotOnRelease', [releaseBranchPattern: 'release.*']
}

### incrementPrerelease

This rule uses additional parameter `initialPreReleaseIfNotOnPrerelease` (by default
it's empty):

scmVersion {
versionIncrementer 'incrementPrerelease', [initialPreReleaseIfNotOnPrerelease: 'rc1']
}

## Decorating

Decorating phase happens only when version is read (and deserialized).
Expand Down
Expand Up @@ -43,6 +43,11 @@ enum PredefinedVersionIncrementer {
.build()
}
}

if (config.initialPreReleaseIfNotOnPrerelease != null) {
return context.currentVersion.incrementPatchVersion(String.valueOf(config.initialPreReleaseIfNotOnPrerelease))
}

return context.currentVersion.incrementPatchVersion()
}),

Expand Down
Expand Up @@ -41,15 +41,31 @@ class PredefinedVersionIncrementerTest extends Specification {
expect:
versionIncrementerFor('branchSpecific', ['release.*': 'incrementPatch', 'master': 'incrementMinor'])(context) == Version.valueOf('0.2.0')
}

def "should increment prerelease version when incrementPrerelease rule used"() {
given:
VersionIncrementerContext context = new VersionIncrementerContext(Version.valueOf('0.1.0-rc1'), scmPosition('master'))

expect:
versionIncrementerFor('incrementPrerelease')(context) == Version.valueOf('0.1.0-rc2')
}

def "should increment patch version when incrementPrerelease rule used and currentVersion is not rc"() {
given:
VersionIncrementerContext context = new VersionIncrementerContext(Version.valueOf('0.1.0'), scmPosition('master'))

expect:
versionIncrementerFor('incrementPrerelease')(context) == Version.valueOf('0.1.1')
}

def "should create prerelease version when incrementPrerelease rule used with initialPreReleaseIfNotOnPrerelease"() {
given:
VersionIncrementerContext context = new VersionIncrementerContext(Version.valueOf('0.1.0'), scmPosition('master'))

expect:
versionIncrementerFor('incrementPrerelease', [initialPreReleaseIfNotOnPrerelease: 'rc1'])(context) == Version.valueOf('0.1.1-rc1')
}

def "should increment prerelease version even when it has leading zeroes when incrementPrerelease rule used"() {
given:
VersionIncrementerContext context = new VersionIncrementerContext(Version.valueOf('0.1.0-rc01'), scmPosition('master'))
Expand Down

0 comments on commit afbceb2

Please sign in to comment.