Last active
February 16, 2018 11:50
-
-
Save BlueHatbRit/f41c150a0a6cfeed7381841709df692e to your computer and use it in GitHub Desktop.
A simple version number helper for FAKE build scripts (designed for Git Flow)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module BuildNumberHelper | |
open System | |
open Fake | |
let private majorMinorVersionMaster = | |
match environVarOrNone "MajorMinorVersion.Master" with | |
| Some v -> v | |
| None -> "0.0" | |
let private majorMinorVersionDevelop = | |
match environVarOrNone "MajorMinorVersion.Develop" with | |
| Some v -> v | |
| None -> "0.0" | |
let private buildCounter = | |
match TeamCityHelper.TeamCityBuildNumber with | |
| Some v -> v | |
| None -> "0" | |
let private getBranchName (branchRef:string) = | |
let arr = branchRef.Split[|'/'|] | |
arr.[arr.Length - 1] | |
let private currentBranch = | |
let branch = getBranchName (getBuildParamOrDefault "branch" "adhoc") | |
trace branch | |
getBranchName (getBuildParamOrDefault "branch" "adhoc") | |
let private mastVerNumber = majorMinorVersionMaster + "." + buildCounter | |
let private devVerNumber = majorMinorVersionDevelop + "." + buildCounter | |
let private relVerNumber (branchName:string) = | |
let majorMinor = branchName.Replace("release-", "") | |
majorMinor + "." + buildCounter | |
let private featVerNumber (branchName:string) = | |
let featureName = branchName.Replace("feature-", "") | |
devVerNumber + "-" + featureName | |
let private adhocVerNumber branchName = devVerNumber + "-" + branchName | |
let private getVersionIdentifier branch = | |
match branch with | |
| "master" -> mastVerNumber | |
| "develop" -> devVerNumber | |
| b when b.Contains("release-") -> relVerNumber b | |
| b when b.Contains("feature-") -> featVerNumber b | |
| _ -> featVerNumber branch | |
let getVersion = | |
getVersionIdentifier currentBranch | |
let getShortVersion = | |
let longVersion = getVersion | |
let arr = longVersion.Split[|'-'|] | |
arr.[0] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment