-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.ps1
More file actions
42 lines (33 loc) · 1.59 KB
/
Copy pathbuild.ps1
File metadata and controls
42 lines (33 loc) · 1.59 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
$ErrorActionPreference = 'Stop'
Set-StrictMode -Version Latest
$root = $PSScriptRoot
$solution = Join-Path $root 'ARSVIN.sln'
$appProject = Join-Path $root 'src\ARSVIN\ARSVIN.csproj'
$subscriberProject = Join-Path $root 'src\ARSVIN.Subscriber\ARSVIN.Subscriber.csproj'
$testProject = Join-Path $root 'tests\ARSVIN.Tests\ARSVIN.Tests.csproj'
function Invoke-DotNet {
param([Parameter(Mandatory)][string[]] $Arguments)
& dotnet @Arguments
if ($LASTEXITCODE -ne 0) {
throw "dotnet $($Arguments -join ' ') failed with exit code $LASTEXITCODE."
}
}
Write-Host '==> Verifying current license, provenance, and public wording'
& python (Join-Path $root 'scripts\verify-current-license.py')
if ($LASTEXITCODE -ne 0) {
throw 'Current-license and public-wording verification failed.'
}
Write-Host '==> Validating neutral public terminology'
& python (Join-Path $root 'scripts\validate-public-neutrality.py')
if ($LASTEXITCODE -ne 0) {
throw 'Public terminology neutrality validation failed.'
}
Write-Host '==> Restoring locked solution dependency graph'
Invoke-DotNet -Arguments @('restore', $solution, '--locked-mode')
Write-Host '==> Building ARSVIN Publisher'
Invoke-DotNet -Arguments @('build', $appProject, '-c', 'Release', '--no-restore', '-warnaserror')
Write-Host '==> Building ArSubsv Subscriber'
Invoke-DotNet -Arguments @('build', $subscriberProject, '-c', 'Release', '--no-restore', '-warnaserror')
Write-Host '==> Running tests'
Invoke-DotNet -Arguments @('test', $testProject, '-c', 'Release', '--no-restore', '/p:TreatWarningsAsErrors=true')
Write-Host '==> Build completed successfully'