mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
[release/v7.5.5] Fix MSIX Stages (#27002)
Co-authored-by: Justin Chung <124807742+jshigetomi@users.noreply.github.com> Co-authored-by: Justin Chung <chungjustin@microsoft.com>
This commit is contained in:
co-authored by
Justin Chung
Justin Chung
parent
e65d3dc697
commit
6c861249a0
@@ -115,13 +115,11 @@ jobs:
|
||||
$signedBundle = Get-ChildItem -Path $(BundleDir) -Filter "*.msixbundle" -File
|
||||
Write-Verbose -Verbose "Signed bundle: $signedBundle"
|
||||
|
||||
# Ensure the destination directory exists
|
||||
if (-not (Test-Path -Path "$(ob_outputDirectory)")) {
|
||||
Write-Verbose -Verbose "Creating destination directory: $(ob_outputDirectory)"
|
||||
New-Item -Path "$(ob_outputDirectory)" -ItemType Directory -Force | Out-Null
|
||||
if (-not (Test-Path $(ob_outputDirectory))) {
|
||||
New-Item -ItemType Directory -Path $(ob_outputDirectory) -Force
|
||||
}
|
||||
|
||||
Copy-Item -Path $signedBundle.FullName -Destination "$(ob_outputDirectory)\$($signedBundle.Name)" -Verbose
|
||||
Copy-Item -Path $signedBundle.FullName -Destination "$(ob_outputDirectory)" -Verbose
|
||||
|
||||
Write-Verbose -Verbose "Uploaded Bundle:"
|
||||
Get-ChildItem -Path $(ob_outputDirectory) | Write-Verbose -Verbose
|
||||
@@ -189,7 +187,7 @@ jobs:
|
||||
# Create namespace manager for XML with default namespace
|
||||
$nsManager = New-Object System.Xml.XmlNamespaceManager($pdpXml.NameTable)
|
||||
$nsManager.AddNamespace("pd", "http://schemas.microsoft.com/appx/2012/ProductDescription")
|
||||
|
||||
|
||||
$appStoreNameElement = $pdpXml.SelectSingleNode("//pd:AppStoreName", $nsManager)
|
||||
if ($appStoreNameElement) {
|
||||
$appStoreNameElement.SetAttribute("_locID", $config.AppStoreName)
|
||||
@@ -226,17 +224,54 @@ jobs:
|
||||
|
||||
Write-Host "##vso[task.setvariable variable=ServiceConnection]$($config.ServiceEndpoint)"
|
||||
Write-Host "##vso[task.setvariable variable=SBConfigPath]$($sbConfigPath)"
|
||||
|
||||
# These variables are used in the next tasks to determine which ServiceEndpoint to use
|
||||
$ltsValue = $IsLTS.ToString().ToLower()
|
||||
$stableValue = $IsStable.ToString().ToLower()
|
||||
$previewValue = $IsPreview.ToString().ToLower()
|
||||
|
||||
Write-Verbose -Verbose "About to set variables:"
|
||||
Write-Verbose -Verbose " LTS=$ltsValue"
|
||||
Write-Verbose -Verbose " STABLE=$stableValue"
|
||||
Write-Verbose -Verbose " PREVIEW=$previewValue"
|
||||
|
||||
Write-Host "##vso[task.setvariable variable=LTS]$ltsValue"
|
||||
Write-Host "##vso[task.setvariable variable=STABLE]$stableValue"
|
||||
Write-Host "##vso[task.setvariable variable=PREVIEW]$previewValue"
|
||||
|
||||
Write-Verbose -Verbose "Variables set successfully"
|
||||
name: UpdateConfigs
|
||||
displayName: Update PDPs and SBConfig.json
|
||||
|
||||
- pwsh: |
|
||||
Write-Verbose -Verbose "Checking variables after UpdateConfigs:"
|
||||
Write-Verbose -Verbose "LTS=$(LTS)"
|
||||
Write-Verbose -Verbose "STABLE=$(STABLE)"
|
||||
Write-Verbose -Verbose "PREVIEW=$(PREVIEW)"
|
||||
displayName: Debug - Check Variables
|
||||
|
||||
- task: MS-RDX-MRO.windows-store-publish.package-task.store-package@3
|
||||
displayName: 'Create StoreBroker Package'
|
||||
displayName: 'Create StoreBroker Package (Preview)'
|
||||
condition: eq(variables['PREVIEW'], 'true')
|
||||
inputs:
|
||||
serviceEndpoint: 'StoreAppPublish-Private'
|
||||
serviceEndpoint: 'StoreAppPublish-Preview'
|
||||
sbConfigPath: '$(SBConfigPath)'
|
||||
sourceFolder: '$(BundleDir)'
|
||||
contents: '*.msixBundle'
|
||||
outSBName: 'PowerShellStorePackage'
|
||||
pdpPath: '$(System.DefaultWorkingDirectory)/PowerShell/.pipelines/store/PDP/PDP'
|
||||
pdpMediaPath: '$(System.DefaultWorkingDirectory)/PowerShell/.pipelines/store/PDP/PDP-Media'
|
||||
|
||||
- task: MS-RDX-MRO.windows-store-publish.package-task.store-package@3
|
||||
displayName: 'Create StoreBroker Package (Stable/LTS)'
|
||||
condition: or(eq(variables['STABLE'], 'true'), eq(variables['LTS'], 'true'))
|
||||
inputs:
|
||||
serviceEndpoint: 'StoreAppPublish-Stable'
|
||||
sbConfigPath: '$(SBConfigPath)'
|
||||
sourceFolder: '$(BundleDir)'
|
||||
contents: '*.msixBundle'
|
||||
outSBName: 'PowerShellStorePackage'
|
||||
pdpPath: '$(System.DefaultWorkingDirectory)/PowerShell/.pipelines/store/PDP/PDP'
|
||||
pdpMediaPath: '$(System.DefaultWorkingDirectory)/PowerShell/.pipelines/store/PDP/PDP-Media'
|
||||
|
||||
- pwsh: |
|
||||
@@ -261,4 +296,4 @@ jobs:
|
||||
else {
|
||||
Write-Error "Required files not found in $submissionPackageDir"
|
||||
}
|
||||
displayName: 'Upload StoreBroker Package'
|
||||
displayName: 'Upload StoreBroker Package'
|
||||
|
||||
@@ -50,7 +50,7 @@ jobs:
|
||||
$middleURL = $matches[1]
|
||||
}
|
||||
|
||||
$endURL = $tagString -replace '^v|\.', ''
|
||||
$endURL = $tagString -replace '^v','' -replace '\.',''
|
||||
$message = "Changelog: https://github.com/PowerShell/PowerShell/blob/master/CHANGELOG/$middleURL.md#$endURL"
|
||||
Write-Verbose -Verbose "Release Notes for the Store:"
|
||||
Write-Verbose -Verbose "$message"
|
||||
@@ -59,8 +59,15 @@ jobs:
|
||||
|
||||
$json.listings.'en-us'.baseListing.releaseNotes = $message
|
||||
|
||||
# Add PowerShell version to the top of the description
|
||||
$description = $json.listings.'en-us'.baseListing.description
|
||||
$version = "$(ReleaseTag)"
|
||||
$updatedDescription = "Version: $version`n`n$description"
|
||||
$json.listings.'en-us'.baseListing.description = $updatedDescription
|
||||
Write-Verbose -Verbose "Updated description: $updatedDescription"
|
||||
|
||||
$json | ConvertTo-Json -Depth 100 | Set-Content $jsonPath -Encoding UTF8
|
||||
displayName: 'Update Release Notes in JSON'
|
||||
displayName: 'Add Changelog Link and Version Number to SBJSON'
|
||||
|
||||
- task: PowerShell@2
|
||||
inputs:
|
||||
@@ -73,7 +80,6 @@ jobs:
|
||||
|
||||
Write-Verbose -Verbose "Channel Selection - LTS: $(LTS), Stable: $(STABLE), Preview: $(PREVIEW)"
|
||||
|
||||
# Determine the current channel for logging purposes
|
||||
$currentChannel = if ($IsLTS) { 'LTS' }
|
||||
elseif ($IsStable) { 'Stable' }
|
||||
elseif ($IsPreview) { 'Preview' }
|
||||
@@ -81,17 +87,31 @@ jobs:
|
||||
Write-Error "No valid channel detected"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
# Assign AppID for Store-Publish Task
|
||||
$appID = $null
|
||||
if ($IsLTS) {
|
||||
$appID = '$(AppID-LTS)'
|
||||
}
|
||||
elseif ($IsStable) {
|
||||
$appID = '$(AppID-Stable)'
|
||||
}
|
||||
else {
|
||||
$appID = '$(AppID-Preview)'
|
||||
}
|
||||
|
||||
Write-Host "##vso[task.setvariable variable=AppID]$appID"
|
||||
Write-Verbose -Verbose "Selected channel: $currentChannel"
|
||||
Write-Verbose -Verbose "Conditional tasks will handle the publishing based on channel variables"
|
||||
displayName: 'Validate Channel Selection'
|
||||
|
||||
- task: MS-RDX-MRO.windows-store-publish.publish-task.store-publish@3
|
||||
displayName: 'Publish LTS StoreBroker Package'
|
||||
condition: and(ne('${{ parameters.skipMSIXPublish }}', 'true'), eq(variables['LTS'], 'true'))
|
||||
displayName: 'Publish StoreBroker Package (Stable/LTS)'
|
||||
condition: and(ne('${{ parameters.skipMSIXPublish }}', 'true'), or(eq(variables['STABLE'], 'true'), eq(variables['LTS'], 'true')))
|
||||
continueOnError: true
|
||||
inputs:
|
||||
serviceEndpoint: 'StoreAppPublish-Private'
|
||||
appId: '$(AppID-LTS)'
|
||||
serviceEndpoint: 'StoreAppPublish-Stable'
|
||||
appId: '$(AppID)'
|
||||
inputMethod: JsonAndZip
|
||||
jsonPath: '$(Pipeline.Workspace)\SBOutDir\PowerShellStorePackage.json'
|
||||
zipPath: '$(Pipeline.Workspace)\SBOutDir\PowerShellStorePackage.zip'
|
||||
@@ -100,32 +120,15 @@ jobs:
|
||||
targetPublishMode: 'Immediate'
|
||||
|
||||
- task: MS-RDX-MRO.windows-store-publish.publish-task.store-publish@3
|
||||
displayName: 'Publish Stable StoreBroker Package'
|
||||
condition: and(ne('${{ parameters.skipMSIXPublish }}', 'true'), eq(variables['STABLE'], 'true'))
|
||||
inputs:
|
||||
serviceEndpoint: 'StoreAppPublish-Private'
|
||||
appId: '$(AppID-Stable)'
|
||||
inputMethod: JsonAndZip
|
||||
jsonPath: '$(Pipeline.Workspace)\SBOutDir\PowerShellStorePackage.json'
|
||||
zipPath: '$(Pipeline.Workspace)\SBOutDir\PowerShellStorePackage.zip'
|
||||
numberOfPackagesToKeep: 2
|
||||
jsonZipUpdateMetadata: true
|
||||
targetPublishMode: 'Immediate'
|
||||
|
||||
- task: MS-RDX-MRO.windows-store-publish.publish-task.store-publish@3
|
||||
displayName: 'Publish Preview StoreBroker Package'
|
||||
displayName: 'Publish StoreBroker Package (Preview)'
|
||||
condition: and(ne('${{ parameters.skipMSIXPublish }}', 'true'), eq(variables['PREVIEW'], 'true'))
|
||||
continueOnError: true
|
||||
inputs:
|
||||
serviceEndpoint: 'StoreAppPublish-Private'
|
||||
appId: '$(AppID-Preview)'
|
||||
serviceEndpoint: 'StoreAppPublish-Preview'
|
||||
appId: '$(AppID)'
|
||||
inputMethod: JsonAndZip
|
||||
jsonPath: '$(Pipeline.Workspace)\SBOutDir\PowerShellStorePackage.json'
|
||||
zipPath: '$(Pipeline.Workspace)\SBOutDir\PowerShellStorePackage.zip'
|
||||
numberOfPackagesToKeep: 2
|
||||
jsonZipUpdateMetadata: true
|
||||
targetPublishMode: 'Immediate'
|
||||
|
||||
- pwsh: |
|
||||
Get-Content -Path "$(System.DefaultWorkingDirectory)/SBLog.txt" -ErrorAction SilentlyContinue
|
||||
displayName: Upload Store Failure Log
|
||||
condition: failed()
|
||||
|
||||
Reference in New Issue
Block a user