-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathbuild.ps1
More file actions
83 lines (66 loc) · 1.71 KB
/
build.ps1
File metadata and controls
83 lines (66 loc) · 1.71 KB
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# build automation script
param(
[switch]
$Publish,
[string]
$NuGetApiKey
)
$VersionPrefix = "2"
$VersionSuffix = "5.0.0"
$SlnPath = "LivyApi.sln"
$AssemblyVersion = "$VersionPrefix.0.0.0"
$PackageVersion = "$VersionPrefix.$VersionSuffix"
Write-Host "version: $PackageVersion, assembly version: $AssemblyVersion"
function Update-ProjectVersion([string]$Path, [string]$Version)
{
$xml = [xml](Get-Content $Path)
if($xml.Project.PropertyGroup.Count -eq $null)
{
$pg = $xml.Project.PropertyGroup
}
else
{
$pg = $xml.Project.PropertyGroup[0]
}
$pg.Version = $PackageVersion
$pg.FileVersion = $PackageVersion
$pg.AssemblyVersion = $AssemblyVersion
$xml.Save($Path)
}
function Exec($Command)
{
Invoke-Expression $Command
if($LASTEXITCODE -ne 0)
{
Write-Error "command failed (error code: $LASTEXITCODE)"
exit 1
}
}
# General validation
if($Publish -and (-not $NuGetApiKey))
{
Write-Error "Please specify nuget key to publish"
exit 1
}
# Update versioning information
Get-ChildItem *.csproj -Recurse | Where-Object {$_.Name -eq "Elastacloud.LivyApi.csproj"} | % {
$path = $_.FullName
Write-Host "setting version of $path"
Update-ProjectVersion $path
}
# Restore packages
Exec "dotnet restore $SlnPath"
# Build solution
Get-ChildItem *.nupkg -Recurse | Remove-Item -ErrorAction Ignore
Exec "dotnet build $SlnPath -c release"
# publish the nugets
if($Publish.IsPresent)
{
Write-Host "publishing nugets..."
Get-ChildItem *.nupkg -Recurse | % {
$path = $_.FullName
Write-Host "pushing from $path"
Exec "nuget push $path -Source https://www.nuget.org/api/v2/package -ApiKey $NuGetApiKey"
}
}
Write-Host "build succeeded."