-
Notifications
You must be signed in to change notification settings - Fork 4
/
build.yaml
151 lines (129 loc) · 4.25 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
---
####################################################
# ModuleBuilder Configuration #
####################################################
CopyPaths:
- en-US
- tasks
Encoding: UTF8
VersionedOutputDirectory: true
BuiltModuleSubdirectory: module
AliasesToExport:
- 'Task.Create_PR_From_SourceBranch'
- 'Task.Create_AzureDevOps_Release'
####################################################
# Sampler Pipeline Configuration #
####################################################
BuildWorkflow:
'.':
- build
- test
Add_Aliases_To_Module_Manifest: |
{
<#
This is quick fix for issue https://github.com/PoshCode/ModuleBuilder/issues/103.
Aliases need to be added to module manifest, and we can only use
New-Alias or Set-Alias together with build tasks. This module
already automatically exports aliases using [Alias()] so this quick
fix is meant as a workaround until the above issue is resolved.
#>
param
(
$OutputDirectory = (property OutputDirectory (Join-Path $BuildRoot 'output')),
$ProjectName = (property ProjectName ''),
$BuildInfo = (property BuildInfo @{ })
)
. Set-SamplerTaskVariable
$existingAliases = @((Test-ModuleManifest -Path $BuiltModuleManifest).ExportedAliases.Values.Name)
# It was not really an empty collection, without this it added "" as an alias to the manifest below.
if ([System.String]::IsNullOrEmpty($existingAliases))
{
$existingAliases = @()
}
"`tAlready Exported Aliases = {0}" -f ($existingAliases -join ', ')
"`tAdditional Aliases To Export = {0}" -f ($BuildInfo.AliasesToExport -join ', ')
Update-Metadata -Path $BuiltModuleManifest -PropertyName AliasesToExport -Value ($existingAliases + $BuildInfo.AliasesToExport)
}
build:
- Clean
- Build_Module_ModuleBuilder
- Build_NestedModules_ModuleBuilder
- Add_Aliases_To_Module_Manifest
- Create_changelog_release_output
pack:
- build
- package_module_nupkg
hqrmtest:
- Invoke_HQRM_Tests_Stop_On_Fail
test:
- Pester_Tests_Stop_On_Fail
- Convert_Pester_Coverage
- Pester_if_Code_Coverage_Under_Threshold
merge:
- Merge_CodeCoverage_Files
publish:
- Publish_release_to_GitHub
- publish_module_to_gallery
####################################################
# PESTER Configuration #
####################################################
Pester:
Configuration:
Run:
Path:
- tests/QA
- tests/Unit
- tests/Integration
CodeCoverage:
CoveragePercentTarget: 85
OutputPath: JaCoCo_Merge.xml
OutputEncoding: ascii
ExcludeFromCodeCoverage:
CodeCoverage:
CodeCoverageFilePattern: JaCoCo_Merge.xml # the pattern used to search all pipeline test job artifacts
CodeCoverageMergedOutputFile: JaCoCo_coverage.xml # the file that is created for the merged code coverage
DscTest:
Pester:
Configuration:
Filter:
Tag:
ExcludeTag:
- Common Tests - New Error-Level Script Analyzer Rules
Output:
Verbosity: Detailed
TestResult:
Enabled: true
OutputFormat: NUnitXML
OutputPath: ./output/testResults/NUnitXml_DscResourceCommon_HQRM.xml
OutputEncoding: UTF-8
TestSuiteName: DscResourceCommonHQRM
Script:
ExcludeSourceFile:
- output
- DscResource.Common
ExcludeModuleFile:
MainGitBranch: main
ModuleBuildTasks:
Sampler:
- '*.build.Sampler.ib.tasks'
Sampler.GitHubTasks:
- '*.ib.tasks'
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'
GitHubConfigUserName: gaelcolas
GitHubConfigUserEmail: psgallery@synedgy.com
UpdateChangelogOnPrerelease: false