-
Notifications
You must be signed in to change notification settings - Fork 16
/
build.yaml
140 lines (119 loc) · 4.27 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
---
####################################################
# ModuleBuilder Configuration #
####################################################
# Path to the Module Manifest to build (where path will be resolved from)
# SourcePath: ./Sampler/Sampler.psd1
# Output Directory where ModuleBuilder will build the Module, relative to module manifest
# OutputDirectory: ../output/Sampler
CopyDirectories:
- en-US
- DSCResources
- Modules
Encoding: UTF8 # With BOM in WinPS, noBOM in PSCore.
# Suffix to add to Root module PSM1 after merge (here, the Set-Alias exporting IB tasks)
# suffix: suffix.ps1
# prefix: prefix.ps1
VersionedOutputDirectory: true
####################################################
# ModuleBuilder Submodules Configuration #
####################################################
# NestedModule:
# HelperSubmodule: # This is the first submodule to build into the output
# Path: ./Sampler/Modules/HelperSubmodule/HelperSubmodule.psd1
# # $ModuleVersionFolder is trimmed (remove -.*) and OutputDirectory expanded (the only one)
# OutputDirectory: ./output/Sampler/$ModuleVersionFolder/Modules/HelperSubmodule
# VersionedOutputDirectory: false
# # suffix:
# # prefix:
####################################################
# Sampler Pipeline Configuration #
####################################################
# Defining 'Workflows' (suite of InvokeBuild tasks) to be run using their alias
BuildWorkflow:
'.': # "." is the default Invoke-Build workflow. It is called when no -Tasks is specified to the build.ps1
- build
- test
build:
- Clean
- Build_Module_ModuleBuilder
- Build_NestedModules_ModuleBuilder
- Create_changelog_release_output
#- Generate_Conceptual_Help
pack:
- build
- package_module_nupkg
hqrmtest:
- DscResource_Tests_Stop_On_Fail
# defining test task to be run when invoking `./build.ps1 -Tasks test`
test:
- Pester_Tests_Stop_On_Fail
- Pester_if_Code_Coverage_Under_Threshold
merge:
- Merge_CodeCoverage_Files
publish:
- Publish_release_to_GitHub
- publish_module_to_gallery # runs if nuget is not available
####################################################
# PESTER Configuration #
####################################################
Pester: #Passthru, OutputFile, CodeCoverageOutputFile not supported
OutputFormat: NUnitXML
# Will look at every *.ps1 & *.psm1 under ModulePath, excepts when $_.FullName -match (Join-Path $ProjectPath $ExcludeFromCodeCoverageItem)
ExcludeFromCodeCoverage:
# - Template
# Default is to use the tests folder in the project folder or source folder (if present)
# can use it to prioritize: tests/QA, tests/Unit, tests/Integration
Script:
# - tests/QA/module.tests.ps1
# - tests/QA
- tests/Unit
# - tests/Integration
ExcludeTag:
- helpQuality
- FunctionalQuality
- TestQuality
Tag:
CodeCoverageThreshold: 79 # Set to 0 to bypass
# CodeCoverageOutputFile: JaCoCo_$OsShortName.xml
# CodeCoverageOutputFileEncoding: ascii
# CodeCoverageMergedOutputFile: JaCoCo_Merged.xml
DscTest:
ExcludeTag:
- "Common Tests - New Error-Level Script Analyzer Rules"
Tag:
ExcludeSourceFile:
- output
ExcludeModuleFile:
# - Templates
# - Modules/DscResource.Common
Resolve-Dependency: #Parameters for Resolve-Dependency
#PSDependTarget: ./output/modules
#Proxy: ''
#ProxyCredential:
Gallery: ''
#MinimumPSDependVersion = '0.3.0'
AllowPrerelease: false
Verbose: false
ModuleBuildTasks:
Sampler:
- '*.build.Sampler.ib.tasks' # this means: import (dot source) all aliases ending with .ib.tasks exported by sampler module
DscResource.DocGenerator:
- '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'
GitHubConfigUserName: dscbot
GitHubConfigUserEmail: dsccommunity@outlook.com
UpdateChangelogOnPrerelease: false