forked from PowerShell/PSScriptAnalyzer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.ps1
72 lines (61 loc) · 1.88 KB
/
build.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
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
[CmdletBinding(DefaultParameterSetName="BuildOne")]
param(
[Parameter(ParameterSetName="BuildAll")]
[switch]$All,
[Parameter(ParameterSetName="BuildOne")]
[ValidateSet("full", "core")]
[string]$Framework = "core",
[Parameter(ParameterSetName="BuildOne")]
[ValidateSet("3","4","5")]
[string]$PSVersion = "5",
[Parameter(ParameterSetName="BuildOne")]
[Parameter(ParameterSetName="BuildAll")]
[ValidateSet("Debug", "Release")]
[string]$Configuration = "Debug",
[Parameter(ParameterSetName="BuildDoc")]
[switch]$Documentation,
[Parameter(ParameterSetName='BuildAll')]
[Parameter(ParameterSetName='BuildOne')]
[switch]$Clobber,
[Parameter(Mandatory=$true,ParameterSetName='Clean')]
[switch] $Clean,
[Parameter(Mandatory=$true,ParameterSetName='Test')]
[switch] $Test,
[Parameter(ParameterSetName='Test')]
[switch] $InProcess
)
END {
Import-Module -Force (Join-Path $PSScriptRoot build.psm1)
if ( $Clean -or $Clobber ) {
Remove-Build
if ( $PSCmdlet.ParameterSetName -eq "Clean" ) {
return
}
}
$setName = $PSCmdlet.ParameterSetName
switch ( $setName ) {
"BuildAll" {
Start-ScriptAnalyzerBuild -All -Configuration $Configuration
}
"BuildDoc" {
Start-ScriptAnalyzerBuild -Documentation
}
"BuildOne" {
$buildArgs = @{
Framework = $Framework
PSVersion = $PSVersion
Configuration = $Configuration
}
Start-ScriptAnalyzerBuild @buildArgs
}
"Test" {
Test-ScriptAnalyzer -InProcess:$InProcess
return
}
default {
throw "Unexpected parameter set '$setName'"
}
}
}