forked from Ed-Fi-Exchange-OSS/Suite-3-Performance-Testing
-
Notifications
You must be signed in to change notification settings - Fork 0
/
package.ps1
75 lines (61 loc) · 1.92 KB
/
package.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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# SPDX-License-Identifier: Apache-2.0
# Licensed to the Ed-Fi Alliance under one or more agreements.
# The Ed-Fi Alliance licenses this file to you under the Apache License, Version 2.0.
# See the LICENSE and NOTICES files in the project root for more information.
param([string] $versionPrefix, [int]$buildCounter, $prereleaseName=$null)
function remove-directory($path) {
if (test-path $path) {
write-host "Deleting $path"
remove-item $path -recurse -force -ErrorAction SilentlyContinue | out-null
}
}
function execute($command) {
$global:lastexitcode = 0
& $command
if ($lastexitcode -ne 0) {
throw "Error executing command:$command"
}
}
function main($mainBlock) {
try {
&$mainBlock
write-host
write-host "Packaging Succeeded" -fore GREEN
exit 0
} catch [Exception] {
write-host
write-host $_.Exception.Message -fore DARKRED
write-host
write-host "Packaging Failed" -fore DARKRED
exit 1
}
}
main {
$version = if ($prereleaseName -ne $null) {
"$versionPrefix-$prereleaseName-{0:D4}" -f $buildCounter
} else {
"$versionPrefix.$buildCounter"
}
$artifacts = "$(resolve-path .)\artifacts"
remove-directory $artifacts
try {
Push-Location ..
Copy-Item -Path ".\deploy.env" -Destination ".\.env" -Force | Out-Null
dotnet tool install octopus.dotnet.cli --global | Out-Null
execute {
dotnet octo pack `
--id=Suite-3-Performance-Testing `
--version=$version `
--outFolder=$artifacts `
--include=./eng/deploy.ps1 `
--include=src/** `
--include=TestRunner.psm1 `
--include=run-tests.bat `
--include=run-report.bat `
--include=.env `
}
}
finally {
Pop-Location
}
}