@@ -86,13 +86,13 @@ extends:
8686
8787 Write-Host "##vso[task.setvariable variable=version;isOutput=true]$fullVersion"
8888
89- - stage : Release
89+ - stage : Release_GitHub
9090 displayName : Create GitHub Release
9191 dependsOn : Build
9292 variables :
9393 version : $[ stageDependencies.Build.Build.outputs['SetMeta.version'] ]
9494 jobs :
95- - job : create_release
95+ - job : create_github_release
9696 pool :
9797 name : Azure-Pipelines-1ESPT-ExDShared
9898 image : windows-latest
@@ -173,22 +173,96 @@ extends:
173173 - ✅ Standalone CLI binaries (x64 and ARM64)
174174 - ✅ NPM package for NodeJS/Electron integration
175175
176- # Commented out ESRP release to npm for now
177- # - ${{ if eq(parameters.DoEsrp, 'true') }}:
178- # - task: EsrpRelease@10
179- # inputs:
180- # ConnectedServiceName: ${{ parameters.signingIdentity.serviceName }}
181- # usemanagedidentity: true
182- # keyvaultname: ${{ parameters.signingIdentity.akvName }}
183- # signcertname: ${{ parameters.signingIdentity.signTTSCertName }}
184- # clientid: ${{ parameters.signingIdentity.appId }}
185- # intent: 'PackageDistribution'
186- # contenttype: 'npm'
187- # contentsource: 'Folder'
188- # folderlocation: $(Pipeline.Workspace)/npm-package/
189- # waitforreleasecompletion: true
190- 191- 192- # serviceendpointurl: 'https://api.esrp.microsoft.com'
193- # mainpublisher: 'winappcli'
194- # domaintenantid: ${{ parameters.signingIdentity.tenantId }}
176+ # Commented out ESRP release to npm for now
177+ # - ${{ if eq(parameters.DoEsrp, 'true') }}:
178+ # - stage: Release_Npm
179+ # displayName: Create Npm Release
180+ # dependsOn: Release_GitHub
181+ # jobs:
182+ # - job: create_npm_release
183+ # pool:
184+ # name: Azure-Pipelines-1ESPT-ExDShared
185+ # image: windows-latest
186+ # os: windows
187+ # hostArchitecture: amd64
188+ # displayName: NPM Release
189+ # templateContext:
190+ # type: releaseJob
191+ # isProduction: true
192+ # inputs:
193+ # - input: pipelineArtifact
194+ # artifactName: npm-package
195+ # targetPath: $(Pipeline.Workspace)/npm-package
196+ # steps:
197+ # - task: EsrpRelease@10
198+ # condition: always()
199+ # inputs:
200+ # ConnectedServiceName: ${{ parameters.signingIdentity.serviceName }}
201+ # usemanagedidentity: true
202+ # keyvaultname: ${{ parameters.signingIdentity.akvName }}
203+ # signcertname: ${{ parameters.signingIdentity.signTTSCertName }}
204+ # clientid: ${{ parameters.signingIdentity.appId }}
205+ # intent: 'PackageDistribution'
206+ # contenttype: 'npm'
207+ # contentsource: 'Folder'
208+ # folderlocation: $(Pipeline.Workspace)/npm-package/
209+ # waitforreleasecompletion: true
210+ 211+ 212+ # serviceendpointurl: 'https://api.esrp.microsoft.com'
213+ # mainpublisher: 'winappcli'
214+ # domaintenantid: ${{ parameters.signingIdentity.tenantId }}
215+
216+ - stage : Release_WinGet
217+ displayName : Create WinGet Release
218+ dependsOn : [Build, Release_GitHub]
219+ variables :
220+ version : $[ stageDependencies.Build.Build.outputs['SetMeta.version'] ]
221+ jobs :
222+ - job : create_winget_release
223+ pool :
224+ name : Azure-Pipelines-1ESPT-ExDShared
225+ image : windows-latest
226+ os : windows
227+ hostArchitecture : amd64
228+ displayName : WinGet Release
229+ templateContext :
230+ type : releaseJob
231+ isProduction : true
232+ steps :
233+ - task : PowerShell@2
234+ displayName : " Publish to WinGet"
235+ env :
236+ # PAT lasts 90 days, regenerate as needed and re-run if it failes due to authentication
237+ WINGET_CREATE_GITHUB_TOKEN : $(GITHUB_TOKEN)
238+ inputs :
239+ targetType : ' inline'
240+ script : |
241+ # Download and install C++ Runtime framework package
242+ Write-Host "Installing VCLibs dependency..."
243+ $vcLibsFile = "Microsoft.VCLibs.x64.14.00.Desktop.appx"
244+ Invoke-WebRequest https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx -OutFile $vcLibsFile
245+ Add-AppxPackage $vcLibsFile
246+
247+ # Download and install wingetcreate
248+ Write-Host "Installing wingetcreate..."
249+ $wingetCreateBundle = "wingetcreate.msixbundle"
250+ Invoke-WebRequest https://aka.ms/wingetcreate/latest/msixbundle -OutFile $wingetCreateBundle
251+ Add-AppxPackage $wingetCreateBundle
252+
253+ # Get the installer URLs from the GitHub release
254+ $x64MsixUrl = "https://github.com/microsoft/winappcli/releases/download/v$(version)/winappcli_$(version).0_x64.msix"
255+ $arm64MsixUrl = "https://github.com/microsoft/winappcli/releases/download/v$(version)/winappcli_$(version).0_arm64.msix"
256+
257+ Write-Host "Submitting to WinGet..."
258+ Write-Host "Version: $(version)"
259+ Write-Host "x64 MSIX: $x64MsixUrl"
260+ Write-Host "ARM64 MSIX: $arm64MsixUrl"
261+
262+ # Submit to WinGet repository
263+ # Commented out for now to prevent accidental submissions
264+ # wingetcreate update Microsoft.WinAppCli `
265+ # --version $(version) `
266+ # --urls $x64MsixUrl $arm64MsixUrl `
267+ # --submit
268+ pwsh : true
0 commit comments