forked from NuGet/NuGetGallery
-
Notifications
You must be signed in to change notification settings - Fork 0
/
deploy.ps1
25 lines (23 loc) · 926 Bytes
/
deploy.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function Set-AppSetting($x, [string]$name, [string]$value) {
$setting = $x.configuration.appSettings.add | where { $_.key -eq $name }
if($setting) {
$setting.value = $value
"Patched $name setting."
} else {
"Unknown App Setting: $name."
}
}
# Gather deployment info
$Commit = git rev-parse --short HEAD
$Branch = $env:branch
$Date = [TimeZoneInfo]::ConvertTimeBySystemTimeZoneId([DateTimeOffset]::UtcNow, "Pacific Standard Time")
# Load web.config
$webConfigPath = Join-Path $env:DEPLOYMENT_TEMP "web.config"
if(!(Test-Path $webConfigPath)) {
throw "Web.config not found at $webConfigPath!"
}
$webConfig = [xml](cat $webConfigPath)
Set-AppSetting $webConfig "Gallery.ReleaseBranch" $Branch
Set-AppSetting $webConfig "Gallery.ReleaseSha" $Commit
Set-AppSetting $webConfig "Gallery.ReleaseTime" ($Date.ToString("yyyy-MM-dd hh:mm:ss tt") + " Pacific")
$webConfig.Save($webConfigPath)