| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- # Define the function to get version variables
- function Get-GPUStackVersionVar {
- # Get the build date
- $BUILD_DATE = Get-Date -Format 'yyyy-MM-ddTHH:mm:ssZ'
- # Initialize other variables
- $GIT_TREE_STATE = "unknown"
- $GIT_COMMIT = "unknown"
- $GIT_VERSION = "unknown"
- # Check if the source was exported through git archive
- if ('%$Format:%' -eq '%') {
- $GIT_TREE_STATE = "archive"
- $GIT_COMMIT = '$Format:%H$'
- # Parse the version from '$Format:%D$'
- if ('%$Format:%D$' -match 'tag:\s+(v[^ ,]+)') {
- $GIT_VERSION = $matches[1]
- }
- else {
- $GIT_VERSION = $GIT_COMMIT.Substring(0, 7)
- }
- # Respect specified version
- $GIT_VERSION = $env:VERSION -or $GIT_VERSION
- return
- }
- # Return if git client is not found
- if (-not (Get-Command git -ErrorAction SilentlyContinue)) {
- $GIT_VERSION = $env:VERSION -or $GIT_VERSION
- return
- }
- # Find git info via git client
- $GIT_COMMIT = git rev-parse "HEAD^{commit}" 2>$null
- if ($LASTEXITCODE -eq 0) {
- # Check if the tree is clean or dirty
- $gitStatus = (git status --porcelain 2>$null)
- if ($gitStatus) {
- $GIT_TREE_STATE = "dirty"
- }
- else {
- $GIT_TREE_STATE = "clean"
- }
- # Get the version from HEAD
- $GIT_VERSION = git rev-parse --abbrev-ref HEAD 2>$null
- if ($LASTEXITCODE -eq 0) {
- # Check if HEAD is tagged
- $gitTag = git tag -l --contains HEAD 2>$null | Select-Object -First 1
- if (-not [string]::IsNullOrEmpty($gitTag)) {
- $GIT_VERSION = $gitTag
- }
- }
- # Set version to 'v0.0.0' if the tree is dirty or version format does not match
- if ($GIT_TREE_STATE -eq "dirty" -or -not ($GIT_VERSION -match '^v([0-9]+)\.([0-9]+)(\.[0-9]+)?(-?[0-9A-Za-z.-]+)?(\+[0-9A-Za-z.-]+)?$')) {
- $GIT_VERSION = "v0.0.0"
- }
- # Respect specified version
- if ($env:VERSION) {
- $GIT_VERSION = $env:VERSION
- }
- }
- $global:BUILD_DATE = $BUILD_DATE
- $global:GIT_TREE_STATE = $GIT_TREE_STATE
- $global:GIT_COMMIT = $GIT_COMMIT
- $global:GIT_VERSION = $GIT_VERSION
- }
|