forked from jakkulabs/PowervRA
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.ps1
104 lines (85 loc) · 2.79 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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#Requires -Modules Psake, Pester, PSScriptAnalyzer, PlatyPS, BuildHelpers, GitHubReleaseManager
#Requires -Version 5
<#
.SYNOPSIS
A wrapper script for build.psake.ps1
.DESCRIPTION
This script is a wrapper for the processes defined in build.psake.ps1.
.PARAMETER Task
The build task that needs to be executed.
The default value is Build which will execute the following tasks: Analyze, UpdateModuleManifest, UpdateDocumentation
.PARAMETER Version
The part of the version you wish to bump for this release.
Possible values are:
- NONE
- PATCH
- MINOR
- MAJOR
.INPUTS
System.String
.OUTPUTS
None
.EXAMPLE
.\build.ps1
.Example
.\build.ps1 -Task Build
#>
[Cmdletbinding()]
Param (
[Parameter()]
[ValidateSet("Test", "Build", "Release", "Analyze", "UpdateModuleManifest", "UpdateDocumentation", "IncrementVersion")]
[String]$Task,
[Parameter()]
[ValidateSet("PATCH", "MINOR", "MAJOR")]
[String]$Increment
)
# --- Set Build Environment
Set-BuildEnvironment
# --- Set Psake parameters
$PsakeBuildParameters = @{
BuildFile = "$($PSScriptRoot)\build.psake.ps1"
TaskList = $Task
Parameters = @{"Increment"= $Increment}
Nologo = $true
}
# --- Determine the state of the build script
if ($ENV:BHBuildSystem -eq "AppVeyor") {
Switch -Regex ($ENV:BHCommitMessage) {
"\[Build\]" {
Write-Output "Build Phase: [Build]"
$PsakeBuildParameters.TaskList = "Build"
break
}
"\[Build\.Major\]" {
Write-Output "Build Phase: [Build.Major]"
$PsakeBuildParameters.TaskList = "Build"
$PsakeBuildParameters.Parameters.Increment = "Major"
break
}
"\[Build\.Minor\]" {
Write-Output "Build Phase: [Build.Minor]"
$PsakeBuildParameters.TaskList = "Build"
$PsakeBuildParameters.Parameters.Increment = "Minor"
break
}
"\[Build\.Patch\]" {
Write-Output "Build Phase: [Build.Patch]"
$PsakeBuildParameters.TaskList = "Build"
$PsakeBuildParameters.Parameters.Increment = "Patch"
break
}
"\[Release\]" {
Write-Output "Build Phase: [Release]"
$PsakeBuildParameters.TaskList = "Release"
break
}
default {
Write-Output "Trigger not found in commit message, continuing with default task"
}
}
} else {
Write-Output "BuildSystem is not Appveyor, continuing with build using parameters"
}
# --- Start Build
Invoke-Psake @PsakeBuildParameters -Verbose:$VerbosePreference
exit ([int](-not $psake.build_success))