-
Notifications
You must be signed in to change notification settings - Fork 6
/
Generate-NuGets.ps1
58 lines (51 loc) · 1.67 KB
/
Generate-NuGets.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
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
<#
.SYNOPSIS
Evergine bindings NuGet Packages generator script.
.DESCRIPTION
This script generates NuGet packages for the low-level OpenXR bindings used in Evergine
It's meant to have the same behavior when executed locally as when it's executed in a CI pipeline.
.EXAMPLE
<script> -version 2021.11.17.1-local
.LINK
https://evergine.com
#>
param (
[Parameter(mandatory=$true)][string]$version,
[string]$outputFolderBase = "nupkgs",
[string]$buildVerbosity = "normal",
[string]$buildConfiguration = "Release",
[string]$openXRBindingsCsprojPath = "OpenXRGen\Evergine.Bindings.OpenXR\Evergine.Bindings.OpenXR.csproj"
)
# Utility functions
function LogDebug($line)
{ Write-Host "##[debug] $line" -Foreground Blue -Background Black
}
# Show variables
LogDebug "############## VARIABLES ##############"
LogDebug "Version.............: $version"
LogDebug "Build configuration.: $buildConfiguration"
LogDebug "Build verbosity.....: $buildVerbosity"
LogDebug "Output folder.......: $outputFolderBase"
LogDebug "#######################################"
# Create output folder
$outputFolder = Join-Path $outputFolderBase $versionWithSuffix
New-Item -ItemType Directory -Force -Path $outputFolder
$absoluteOutputFolder = Resolve-Path $outputFolder
$symbols = false
if($buildConfiguration -eq "Debug")
{
$symbols = true
}
# Generate packages
LogDebug "START packaging process"
dotnet pack "$openXRBindingsCsprojPath" -v:$buildVerbosity -p:Configuration=$buildConfiguration -p:PackageOutputPath="$absoluteOutputFolder" -p:IncludeSymbols=$symbols -p:Version=$version
if($?)
{
LogDebug "END packaging process"
}
else
{
LogDebug "ERROR; dotnet pack failed"
exit -1
}
LogDebug "END packaging process"