forked from questionmark/PowerShellTemplate
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathazure-pipelines.yml
88 lines (76 loc) · 2.85 KB
/
azure-pipelines.yml
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
# Docs: https://aka.ms/yaml
name: $(Build.DefinitionName) v$(Build.BuildId)
# pool: Linux # TODO: Delete this, or specify your own agent pool
trigger:
- main # TODO: Make sure this matches your default branch name
resources:
repositories:
- repository: InvokeBuildTasks
type: git
name: InvokeBuildTasks
ref: main
clean: true
fetchDepth: 1
jobs:
- job: build
displayName: Build module
variables:
- group: PSModuleToProget
workspace:
clean: all
steps:
- checkout: self
persistCredentials: true # required for pushing tags
fetchDepth: 0 # required for gitversion
- checkout: InvokeBuildTasks
- pwsh: $(Build.SourcesDirectory)/InvokeBuildTasks/BootStrap.ps1
workingDirectory: $(Build.SourcesDirectory)/$(Build.Repository.Name)
displayName: 'Install Dependencies'
- pwsh: Invoke-Build Build
displayName: 'Build'
workingDirectory: $(Build.SourcesDirectory)/$(Build.Repository.Name)
- pwsh: Invoke-Build Test
displayName: 'Test'
workingDirectory: $(Build.SourcesDirectory)/$(Build.Repository.Name)
- task: PublishTestResults@2
displayName: Publish Test Results
inputs:
testResultsFormat: NUnit
testResultsFiles: $(Build.BinariesDirectory)/TestResult.xml
buildPlatform: $(PSPlatform)
buildConfiguration: Release
failTaskOnFailedTests: true
testRunTitle: Pester on $(PSPlatform)
condition: succeededOrFailed()
- task: PublishCodeCoverageResults@1
displayName: Publish Code Coverage
inputs:
summaryFileLocation: '$(Build.BinariesDirectory)/coverage.xml'
pathToSources: $(Build.BinariesDirectory)/PowerShellTemplate
failIfCoverageEmpty: true
condition: succeededOrFailed()
- task: PublishPipelineArtifact@1
displayName: Publish CodeAnalysisLogs
inputs:
targetPath: $(Build.BinariesDirectory)/results.sarif
ArtifactName: CodeAnalysisLogs
publishLocation: 'pipeline'
condition: succeededOrFailed()
- task: PublishPipelineArtifact@1
displayName: Publish Artifacts
inputs:
targetPath: $(Build.BinariesDirectory)
ArtifactName: Artifacts
publishLocation: 'pipeline'
- pwsh: Invoke-Build TagSource
displayName: 'TagSource'
workingDirectory: $(Build.SourcesDirectory)/$(Build.Repository.Name)
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken) # required for pushing tags
- pwsh: Invoke-Build PublishModule
displayName: 'PublishModule'
workingDirectory: $(Build.SourcesDirectory)/$(Build.Repository.Name)
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
env:
POWERSHELLMODULEPUBLISHKEY: "$(POWERSHELLMODULEPUBLISHKEY)"