Skip to content

Commit

Permalink
PredefinedVersionCreator: added versionWithCommitHash (#542)
Browse files Browse the repository at this point in the history
* PredefinedVersionCreator: added versionWithCommitHash

* PredefinedVersionCreator: added documentation for versionWithCommitHash

Co-authored-by: Mirko Köster <mk@baqend.com>
  • Loading branch information
mkoester and Mirko Köster committed Nov 28, 2022
1 parent 5e7b4ce commit 585609d
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 0 deletions.
12 changes: 12 additions & 0 deletions docs/configuration/version.md
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,18 @@ This version creator appends branch name to version unless you are on
decorate(version: '0.1.0', branch: 'master') == 0.1.0
decorate(version: '0.1.0', branch: 'my-special-branch') == 0.1.0-my-special-branch

#### versionWithCommitHash

scmVersion {
versionCreator('versionWithCommitHash')
}

This version creator appends short SHA-1 hash to version unless you are on
*main*/*master* or *detached HEAD*:

decorate(version: '0.1.0', branch: 'main') == 0.1.0
decorate(version: '0.1.0', branch: 'some-other-branch', revision: 'c1439767113643abda121896ee3fa42b500f16d0') == 0.1.0-c143976

### Custom version creator

Custom version creators can be implemented by creating closure:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,13 @@ enum PredefinedVersionCreator {
return "$versionFromTag-$position.branch".toString()
}
return versionFromTag
}),

VERSION_WITH_COMMIT_HASH('versionWithCommitHash', { String versionFromTag, ScmPosition position ->
if ((position.branch != 'master' && position.branch != 'main') && position.branch != 'HEAD') {
return "$versionFromTag-$position.shortRevision".toString()
}
return versionFromTag
})

private final String type
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,16 @@ class PredefinedVersionCreatorTest extends Specification {
PredefinedVersionCreator.VERSION_WITH_BRANCH.versionCreator.apply('version', scmPosition('branch')) == 'version-branch'
}

def "versionWithCommitHash version creator should return simple version when on main"() {
expect:
PredefinedVersionCreator.VERSION_WITH_COMMIT_HASH.versionCreator.apply('version', scmPosition('main')) == 'version'
}

def "versionWithCommitHash version creator should return version with appended short SHA-1 hash when not on main"() {
expect:
PredefinedVersionCreator.VERSION_WITH_COMMIT_HASH.versionCreator.apply('version', scmPosition('branch')) == 'version-c143976'
}

def "should return version creator of given type"() {
expect:
PredefinedVersionCreator.versionCreatorFor('simple').apply('version', null) == 'version'
Expand Down

0 comments on commit 585609d

Please sign in to comment.