/
build.yaml
138 lines (117 loc) · 4.03 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
---
####################################################
# ModuleBuilder Configuration #
####################################################
CopyPaths:
- en-US
- Tests
- Config
- tasks
Encoding: UTF8
VersionedOutputDirectory: true
AliasesToExport:
- 'Task.Invoke_HQRM_Tests'
- 'Task.Fail_Build_If_HQRM_Tests_Failed'
- 'Task.Invoke_HQRM_Tests_Stop_On_Fail'
####################################################
# Sampler Pipeline Configuration #
####################################################
BuildWorkflow:
'.':
- build
- test
DscTest: |
{
Import-Module -force DscResource.Test
Invoke-DscResourceTest -ExcludeTag 'Common Tests - Validate Localization'
}
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 $(Get-SamplerProjectName -BuildRoot $BuildRoot)),
$BuildInfo = (property BuildInfo @{ })
)
$pathToModuleManifest = Resolve-Path -Path "$OutputDirectory/$ProjectName/**/$ProjectName.psd1"
$existingAliases = @((Test-ModuleManifest -Path $pathToModuleManifest).ExportedAliases.Values.Name)
"`tProject Name = {0}" -f $ProjectName
"`tOutput Directory = {0}" -f $OutputDirectory
"`tModule Manifest Path = {0}" -f $pathToModuleManifest
"`tAlready Exported Aliases = {0}" -f ($existingAliases -join ', ')
"`tNew Aliases To Export = {0}" -f ($BuildInfo.AliasesToExport -join ', ')
Update-Metadata -Path $pathToModuleManifest -PropertyName AliasesToExport -Value ($existingAliases + $BuildInfo.AliasesToExport)
}
t:
- build
- DscTest
build:
- Clean
- Build_Module_ModuleBuilder
- Build_NestedModules_ModuleBuilder
- Add_Aliases_To_Module_Manifest
- Create_changelog_release_output
pack:
- build
- package_module_nupkg
test:
- Pester_Tests_Stop_On_Fail
- Pester_if_Code_Coverage_Under_Threshold
merge:
- Merge_CodeCoverage_Files
publish:
- publish_module_to_gallery
- Publish_Release_To_GitHub
####################################################
# PESTER Configuration #
####################################################
Pester:
OutputFormat: NUnitXML
ExcludeFromCodeCoverage:
- tasks
- Template
- Tests
Script:
- tests/QA
- tests/Unit/
CodeCoverageThreshold: 50
CodeCoverageOutputFile: JaCoCo_Merge.xml # the file that is created for each pipeline test job
CodeCoverageOutputFileEncoding: ascii
ExcludeTag:
- helpQuality
- testQuality
Tag:
ExcludeSourceFile:
- source/potential
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
ModuleBuildTasks:
Sampler:
- '*.build.Sampler.ib.tasks'
Sampler.GitHubTasks:
- '*.ib.tasks'
# 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