@@ -110,8 +110,8 @@ parameters:
110110
111111jobs :
112112 # Job 1: Sign extension and create GitHub release
113- - job : Sign_and_GitHubRelease
114- displayName : Sign Extension and Create GitHub Release
113+ - job : Sign
114+ displayName : Sign Extension
115115 pool :
116116 name : VSEngSS-MicroBuild2022-1ES
117117 os : windows
@@ -144,36 +144,7 @@ jobs:
144144 inputs :
145145 artifactName : vsix-${{ platform.vsceTarget }}
146146 targetPath : $(Build.BinariesDirectory)/vsix-${{ platform.vsceTarget }}
147- displayName : 🚛 Download extension (${{ platform.vsceTarget }})
148-
149- # Extract VSIX to read publisher/version for GitHub release tagging.
150- # Use Agent.TempDirectory to avoid reusing Build.ArtifactStagingDirectory which
151- # is reserved for final artifact staging.
152- - task : ExtractFiles@1
153- inputs :
154- archiveFilePatterns : $(Build.BinariesDirectory)/vsix-*/*.vsix
155- destinationFolder : $(Agent.TempDirectory)/vsix-extracted
156- cleanDestinationFolder : true
157- overwriteExistingFiles : true
158- displayName : 📦 Extract VSIX package
159-
160- - pwsh : |
161- $extensionDir = Get-ChildItem -Path . -Directory -Filter 'extension*' | Select-Object -First 1
162- if (-not $extensionDir) {
163- throw "Could not find extracted extension folder under: $PWD"
164- }
165-
166- $packageJsonPath = Join-Path $extensionDir.FullName 'package.json'
167- if (-not (Test-Path $packageJsonPath)) {
168- throw "Could not find package.json at: $packageJsonPath"
169- }
170-
171- $package = Get-Content $packageJsonPath -Raw | ConvertFrom-Json
172- Write-Host "##vso[task.setvariable variable=publisher;isOutput=true]$($package.publisher)"
173- Write-Host "##vso[task.setvariable variable=version;isOutput=true]$($package.version)"
174- name: SetPublisherAndVersion
175- displayName: 📋 Get Publisher & Version
176- workingDirectory: $(Agent.TempDirectory)/vsix-extracted
147+ displayName : 🚛 Download extension (${{ platform.vsceTarget }})
177148
178149 - template : sign.yml
179150 parameters :
@@ -183,30 +154,61 @@ jobs:
183154 verifySignature : ${{ parameters.verifySignature }}
184155 teamName : ${{ parameters.teamName }}
185156
186- # Get version from package.json for GitHub release tagging
187- - ${{ if and(eq(parameters.publishExtension, true), eq(parameters.ghCreateTag, true), eq(parameters.ghCreateRelease, true)) }} :
188- - template : createGitHubRelease.yml
189- parameters :
190- isPreRelease : ${{ parameters.preRelease }}
191- ghReleaseAddChangeLog : ${{ parameters.ghReleaseAddChangeLog }}
192- tagName : ${{ parameters.ghTagPrefix }}$(SetPublisherAndVersion.version)
193-
194-
195157 # Job 2: Publish to marketplace
196158 - ${{ if eq(parameters.publishExtension, true) }} :
197159 - job : Publish
198- displayName : Publish to Marketplace
199- dependsOn : Sign_and_GitHubRelease
160+ displayName : Publish to Marketplace and GitHub
161+ dependsOn : Sign
200162 pool :
201163 name : VSEngSS-MicroBuild2022-1ES
202164 os : windows
165+ templateContext :
166+ type : releaseJob # This makes a job a release job
167+ isProduction : true # Indicates a production release
203168 steps :
204169 - task : DownloadPipelineArtifact@2
205170 inputs :
206171 artifactName : extension
207172 targetPath : $(Build.ArtifactStagingDirectory)/${{ parameters.publishFolder }}
208173 displayName : 🚛 Download signed extension
209174
175+ # Extract VSIX to read publisher/version for GitHub release tagging.
176+ # Use Agent.TempDirectory to avoid reusing Build.ArtifactStagingDirectory which
177+ # is reserved for final artifact staging.
178+ - task : ExtractFiles@1
179+ inputs :
180+ archiveFilePatterns : $(Build.BinariesDirectory)/vsix-*/*.vsix
181+ destinationFolder : $(Agent.TempDirectory)/vsix-extracted
182+ cleanDestinationFolder : true
183+ overwriteExistingFiles : true
184+ displayName : 📦 Extract VSIX package
185+
186+ - pwsh : |
187+ $extensionDir = Get-ChildItem -Path . -Directory -Filter 'extension*' | Select-Object -First 1
188+ if (-not $extensionDir) {
189+ throw "Could not find extracted extension folder under: $PWD"
190+ }
191+
192+ $packageJsonPath = Join-Path $extensionDir.FullName 'package.json'
193+ if (-not (Test-Path $packageJsonPath)) {
194+ throw "Could not find package.json at: $packageJsonPath"
195+ }
196+
197+ $package = Get-Content $packageJsonPath -Raw | ConvertFrom-Json
198+ Write-Host "##vso[task.setvariable variable=publisher;isOutput=true]$($package.publisher)"
199+ Write-Host "##vso[task.setvariable variable=version;isOutput=true]$($package.version)"
200+ name: SetPublisherAndVersion
201+ displayName: 📋 Get Publisher & Version
202+ workingDirectory: $(Agent.TempDirectory)/vsix-extracted
203+
204+ # Get version from package.json for GitHub release tagging
205+ - ${{ if and(eq(parameters.ghCreateTag, true), eq(parameters.ghCreateRelease, true)) }} :
206+ - template : createGitHubRelease.yml
207+ parameters :
208+ isPreRelease : ${{ parameters.preRelease }}
209+ ghReleaseAddChangeLog : ${{ parameters.ghReleaseAddChangeLog }}
210+ tagName : ${{ parameters.ghTagPrefix }}$(SetPublisherAndVersion.version)
211+
210212 - template : publish.yml
211213 parameters :
212214 azureSubscription : ${{ parameters.azureSubscription }}
0 commit comments