Skip to content

Instantly share code, notes, and snippets.

@BlueHatbRit
Last active February 16, 2018 11:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BlueHatbRit/f41c150a0a6cfeed7381841709df692e to your computer and use it in GitHub Desktop.
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)
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