9
9
# ################################################################################
10
10
11
11
trigger :
12
- - main
12
+ - main
13
13
14
14
resources :
15
15
repositories :
@@ -19,14 +19,14 @@ resources:
19
19
ref : refs/heads/main
20
20
21
21
parameters :
22
- - name : debug
23
- displayName : Enable debug output
24
- type : boolean
25
- default : false
26
- - name : OfficialBuild
27
- displayName : Use Official OneBranch template
28
- type : boolean
29
- default : false
22
+ - name : debug
23
+ displayName : Enable debug output
24
+ type : boolean
25
+ default : false
26
+ - name : OfficialBuild
27
+ displayName : Use Official OneBranch template
28
+ type : boolean
29
+ default : false
30
30
31
31
variables :
32
32
system.debug : ${{ parameters.debug }}
@@ -52,111 +52,111 @@ extends:
52
52
release :
53
53
category : NonAzure
54
54
stages :
55
- - stage : build
56
- jobs :
57
- - job : main
58
- displayName : Build package
59
- pool :
60
- type : windows
55
+ - stage : build
56
+ jobs :
57
+ - job : main
58
+ displayName : Build package
59
+ pool :
60
+ type : windows
61
+ variables :
62
+ ob_outputDirectory : $(Build.SourcesDirectory)/out
63
+ steps :
64
+ - pwsh : |
65
+ [xml]$xml = Get-Content PowerShellEditorServices.Common.props
66
+ $version = $xml.Project.PropertyGroup.VersionPrefix
67
+ $prerelease = $xml.Project.PropertyGroup.VersionSuffix
68
+ if ($prerelease) { $version += "-$prerelease" }
69
+ Write-Output "##vso[task.setvariable variable=version;isOutput=true]$version"
70
+ Write-Output "##vso[task.setvariable variable=prerelease;isOutput=true]$(-not [string]::IsNullOrEmpty($prerelease))"
71
+ name: package
72
+ displayName: Get version from project properties
73
+ - task : onebranch.pipeline.version@1
74
+ displayName : Set OneBranch version
75
+ inputs :
76
+ system : Custom
77
+ customVersion : $(package.version)
78
+ - task : UseDotNet@2
79
+ displayName : Use .NET 8.x SDK
80
+ inputs :
81
+ packageType : sdk
82
+ useGlobalJson : true
83
+ - pwsh : ./tools/installPSResources.ps1 -PSRepository CFS
84
+ displayName : Install PSResources
85
+ - pwsh : Invoke-Build TestFull -Configuration $(BuildConfiguration) -PSRepository CFS
86
+ displayName : Build and test
87
+ - task : PublishTestResults@2
88
+ displayName : Publish test results
89
+ inputs :
90
+ testRunner : VSTest
91
+ testResultsFiles : " **/*.trx"
92
+ failTaskOnFailedTests : true
93
+ - pwsh : |
94
+ $assembly = [Reflection.Assembly]::LoadFile("$(Build.SourcesDirectory)/module/PowerShellEditorServices/bin/Core/Microsoft.PowerShell.EditorServices.Hosting.dll")
95
+ if ($assembly.GetCustomAttributes([System.Diagnostics.DebuggableAttribute], $true).IsJITOptimizerDisabled) {
96
+ Write-Host "##vso[task.LogIssue type=error;]Was not built in release configuration!"
97
+ exit 1
98
+ }
99
+ displayName: Assert release configuration
100
+ continueOnError: true
101
+ - task : onebranch.pipeline.signing@1
102
+ displayName : Sign 1st-party files
103
+ inputs :
104
+ command : sign
105
+ signing_profile : external_distribution
106
+ search_root : $(Build.SourcesDirectory)/module
107
+ files_to_sign : |
108
+ **/*.ps1;
109
+ **/*.psd1;
110
+ **/*.psm1;
111
+ **/*.ps1xml;
112
+ **/Microsoft.PowerShell.EditorServices*.dll;
113
+ - task : onebranch.pipeline.signing@1
114
+ displayName : Sign 3rd-party files
115
+ inputs :
116
+ command : sign
117
+ signing_profile : 135020002
118
+ search_root : $(Build.SourcesDirectory)/module
119
+ files_to_sign : |
120
+ **/MediatR.dll;
121
+ **/Nerdbank.Streams.dll;
122
+ **/Newtonsoft.Json.dll;
123
+ **/OmniSharp.Extensions*.dll;
124
+ **/System.Reactive.dll;
125
+ - task : ArchiveFiles@2
126
+ displayName : Zip signed artifacts
127
+ inputs :
128
+ rootFolderOrFile : $(Build.SourcesDirectory)/module
129
+ includeRootFolder : false
130
+ archiveType : zip
131
+ archiveFile : out/PowerShellEditorServices.zip
132
+ - stage : release
133
+ dependsOn : build
134
+ condition : and(succeeded(), ${{ eq(parameters.OfficialBuild, true) }})
61
135
variables :
62
- ob_outputDirectory : $(Build.SourcesDirectory)/out
63
- steps :
64
- - pwsh : |
65
- [xml]$xml = Get-Content PowerShellEditorServices.Common.props
66
- $version = $xml.Project.PropertyGroup.VersionPrefix
67
- $prerelease = $xml.Project.PropertyGroup.VersionSuffix
68
- if ($prerelease) { $version += "-$prerelease" }
69
- Write-Output "##vso[task.setvariable variable=version;isOutput=true]$version"
70
- Write-Output "##vso[task.setvariable variable=prerelease;isOutput=true]$(-not [string]::IsNullOrEmpty($prerelease))"
71
- name: package
72
- displayName: Get version from project properties
73
- - task : onebranch.pipeline.version@1
74
- displayName : Set OneBranch version
75
- inputs :
76
- system : Custom
77
- customVersion : $(package.version)
78
- - task : UseDotNet@2
79
- displayName : Use .NET 8.x SDK
80
- inputs :
81
- packageType : sdk
82
- useGlobalJson : true
83
- - pwsh : ./tools/installPSResources.ps1 -PSRepository CFS
84
- displayName : Install PSResources
85
- - pwsh : Invoke-Build TestFull -Configuration $(BuildConfiguration) -PSRepository CFS
86
- displayName : Build and test
87
- - task : PublishTestResults@2
88
- displayName : Publish test results
89
- inputs :
90
- testRunner : VSTest
91
- testResultsFiles : ' **/*.trx'
92
- failTaskOnFailedTests : true
93
- - pwsh : |
94
- $assembly = [Reflection.Assembly]::LoadFile("$(Build.SourcesDirectory)/module/PowerShellEditorServices/bin/Core/Microsoft.PowerShell.EditorServices.Hosting.dll")
95
- if ($assembly.GetCustomAttributes([System.Diagnostics.DebuggableAttribute], $true).IsJITOptimizerDisabled) {
96
- Write-Host "##vso[task.LogIssue type=error;]Was not built in release configuration!"
97
- exit 1
98
- }
99
- displayName: Assert release configuration
100
- continueOnError: true
101
- - task : onebranch.pipeline.signing@1
102
- displayName : Sign 1st-party files
103
- inputs :
104
- command : sign
105
- signing_profile : external_distribution
106
- search_root : $(Build.SourcesDirectory)/module
107
- files_to_sign : |
108
- **/*.ps1;
109
- **/*.psd1;
110
- **/*.psm1;
111
- **/*.ps1xml;
112
- **/Microsoft.PowerShell.EditorServices*.dll;
113
- - task : onebranch.pipeline.signing@1
114
- displayName : Sign 3rd-party files
115
- inputs :
116
- command : sign
117
- signing_profile : 135020002
118
- search_root : $(Build.SourcesDirectory)/module
119
- files_to_sign : |
120
- **/MediatR.dll;
121
- **/Nerdbank.Streams.dll;
122
- **/Newtonsoft.Json.dll;
123
- **/OmniSharp.Extensions*.dll;
124
- **/System.Reactive.dll;
125
- - task : ArchiveFiles@2
126
- displayName : Zip signed artifacts
127
- inputs :
128
- rootFolderOrFile : $(Build.SourcesDirectory)/module
129
- includeRootFolder : false
130
- archiveType : zip
131
- archiveFile : out/PowerShellEditorServices.zip
132
- - stage : release
133
- dependsOn : build
134
- condition : and(succeeded(), ${{ eq(parameters.OfficialBuild, true) }})
135
- variables :
136
- ob_release_environment : ${{ iif(parameters.OfficialBuild, 'Production', 'Test') }}
137
- version : $[ stageDependencies.build.main.outputs['package.version'] ]
138
- prerelease : $[ stageDependencies.build.main.outputs['package.prerelease'] ]
139
- jobs :
140
- - job : github
141
- displayName : Publish draft to GitHub
142
- pool :
143
- type : release
144
- templateContext :
145
- inputs :
146
- - input : pipelineArtifact
147
- artifactName : drop_build_main
148
- steps :
149
- - task : GitHubRelease@1
150
- displayName : Create GitHub release
151
- inputs :
152
- gitHubConnection : github.com_andyleejordan
153
- repositoryName : PowerShell/PowerShellEditorServices
154
- target : main
155
- assets : $(Pipeline.Workspace)/PowerShellEditorServices.zip
156
- tagSource : userSpecifiedTag
157
- tag : v$(version)
158
- isDraft : true
159
- isPreRelease : $(prerelease)
160
- addChangeLog : false
161
- releaseNotesSource : inline
162
- releaseNotesInline : " <!-- TODO: Generate release notes on GitHub! -->"
136
+ ob_release_environment : ${{ iif(parameters.OfficialBuild, 'Production', 'Test') }}
137
+ version : $[ stageDependencies.build.main.outputs['package.version'] ]
138
+ prerelease : $[ stageDependencies.build.main.outputs['package.prerelease'] ]
139
+ jobs :
140
+ - job : github
141
+ displayName : Publish draft to GitHub
142
+ pool :
143
+ type : release
144
+ templateContext :
145
+ inputs :
146
+ - input : pipelineArtifact
147
+ artifactName : drop_build_main
148
+ steps :
149
+ - task : GitHubRelease@1
150
+ displayName : Create GitHub release
151
+ inputs :
152
+ gitHubConnection : github.com_andyleejordan
153
+ repositoryName : PowerShell/PowerShellEditorServices
154
+ target : main
155
+ assets : $(Pipeline.Workspace)/PowerShellEditorServices.zip
156
+ tagSource : userSpecifiedTag
157
+ tag : v$(version)
158
+ isDraft : true
159
+ isPreRelease : $(prerelease)
160
+ addChangeLog : false
161
+ releaseNotesSource : inline
162
+ releaseNotesInline : " <!-- TODO: Generate release notes on GitHub! -->"
0 commit comments