-
Notifications
You must be signed in to change notification settings - Fork 15
/
build.yaml
181 lines (159 loc) · 5.08 KB
/
build.yaml
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
---
####################################################
# ModuleBuilder Configuration #
####################################################
BuiltModuleSubdirectory: module
CopyPaths:
- en-US
# - DscResources
# - Modules
Encoding: UTF8
# Can be used to manually specify module's semantic version if the preferred method of
# using GitVersion is not available, and it is not possible to set the session environment
# variable `$env:ModuleVersion`, nor setting the variable `$ModuleVersion`, in the
# PowerShell session (parent scope) before running the task `build`.
#SemVer: '99.0.0-preview1'
VersionedOutputDirectory: true
####################################################
# ModuleBuilder Submodules Configuration #
####################################################
NestedModule:
DscResource.Common:
CopyOnly: true
Path: ./output/RequiredModules/DscResource.Common
AddToManifest: false
Exclude: PSGetModuleInfo.xml
####################################################
# Sampler Pipeline Configuration #
####################################################
BuildWorkflow:
'.':
- build
- test
build:
- Clean
- Build_Module_ModuleBuilder
- Build_NestedModules_ModuleBuilder
- Create_changelog_release_output
- Generate_Conceptual_Help
- Generate_Wiki_Content
pack:
- build
- package_module_nupkg
- gcpol
hqrmtest:
# - Set_PSModulePath
- Invoke_HQRM_Tests_Stop_On_Fail
ipmopsdsc1: |
{
Import-Module -Name PSDesiredStateConfiguration -MaximumVersion 1.99 -Passthru
}
gcpol:
- build_guestconfiguration_packages
# Defining test task to be run when invoking `./build.ps1 -Tasks test`
test:
# - Set_PSModulePath
- Pester_Tests_Stop_On_Fail
# Use this task if pipeline uses code coverage and the module is using the
# pattern of Public, Private, Enum, Classes.
#- Convert_Pester_Coverage
- Pester_if_Code_Coverage_Under_Threshold
# Use this task when you have multiple parallel tests, which produce multiple
# code coverage files and needs to get merged into one file.
merge:
- Merge_CodeCoverage_Files
publish:
- publish_module_to_gallery
- Publish_Release_To_GitHub
- Publish_GitHub_Wiki_Content
# - Create_ChangeLog_GitHub_PR
SetPSModulePath:
RemovePersonal: true
RemoveProgramFiles: true
RemoveWindows: false
SetSystemDefault: false
####################################################
# PESTER Configuration #
####################################################
Pester:
Configuration:
Run:
Path:
- tests/QA
- tests/Unit
Output:
Verbosity: Detailed
StackTraceVerbosity: Full
CIFormat: Auto
CodeCoverage:
CoveragePercentTarget: 10
OutputPath: JaCoCo_Merge.xml
OutputEncoding: ascii
UseBreakpoints: false
TestResult:
OutputFormat: NUnitXML
OutputEncoding: ascii
# Sampler pipeline configuration
CodeCoverage:
CodeCoverageMergedOutputFile: JaCoCo_coverage.xml
CodeCoverageFilePattern: JaCoCo_Merge.xml
DscTest:
Pester:
Configuration:
Filter:
ExcludeTag:
- "Common Tests - New Error-Level Script Analyzer Rules"
Output:
Verbosity: Detailed
Script:
ExcludeSourceFile:
- output
# Deprecated resources
ExcludeModuleFile:
- Modules/DscResource.Common
MainGitBranch: main
# Import ModuleBuilder tasks from a specific PowerShell module using the build
# task's alias. Wildcard * can be used to specify all tasks that has a similar
# prefix and or suffix. The module contain the task must be added as a required
# module in the file RequiredModules.psd1.
ModuleBuildTasks:
Sampler:
- '*.build.Sampler.ib.tasks'
Sampler.GitHubTasks:
- '*.ib.tasks'
DscResource.DocGenerator:
- 'Task.*'
DscResource.Test:
- 'Task.*'
# Invoke-Build Header to be used to 'decorate' the terminal output of the tasks.
TaskHeader: |
param ($Path)
""
"=" * 79
Write-Build Cyan "`t`t`t$($Task.Name.replace("_"," ").ToUpper())"
Write-Build DarkGray "$(Get-BuildSynopsis $Task)"
"-" * 79
Write-Build DarkGray " $Path"
Write-Build DarkGray " $($Task.InvocationInfo.ScriptName):$($Task.InvocationInfo.ScriptLineNumber)"
""
GitHubConfig:
GitHubFilesToAdd:
- 'CHANGELOG.md'
ReleaseAssets:
- output/GCPackages/ChocolateyIsInstalled*.zip
- output/GCPackages/DisableChocolateyCommunitySource*.zip
GitHubConfigUserName: dscbot
GitHubConfigUserEmail: [email protected]
UpdateChangelogOnPrerelease: false
####################################################
# DscResource.DocGenerator Configuration #
####################################################
DscResource.DocGenerator:
Generate_Conceptual_Help:
MarkdownCodeRegularExpression:
- '\`(.+?)\`' # Match inline code-block
- '\\(\\)' # Match escaped backslash
- '\[[^\[]+\]\((.+?)\)' # Match markdown URL
- '_(.+?)_' # Match Italic (underscore)
- '\*\*(.+?)\*\*' # Match bold
- '\*(.+?)\*' # Match Italic (asterisk)