Skip to content

Commit

Permalink
[issue allegro#286] initialPreReleaseIfNotOnPrerelease to create rc v…
Browse files Browse the repository at this point in the history
…ersion, old behavior when absent
  • Loading branch information
krzysiekbielicki committed Mar 29, 2019
1 parent 05d359c commit 9e7299d
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 4 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,7 +43,12 @@ enum PredefinedVersionIncrementer {
.build()
}
}
return context.currentVersion.incrementPatchVersion('rc1')

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

return context.currentVersion.incrementPatchVersion()
}),

BRANCH_SPECIFIC('branchSpecific', { VersionIncrementerContext context, Map config ->
Expand Down
Expand Up @@ -50,12 +50,20 @@ class PredefinedVersionIncrementerTest extends Specification {
versionIncrementerFor('incrementPrerelease')(context) == Version.valueOf('0.1.0-rc2')
}

def "should create prerelease version when incrementPrerelease rule used"() {
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-rc1')
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"() {
Expand Down

0 comments on commit 9e7299d

Please sign in to comment.