From b17df32cd1597b8eec5c8753d12532ed63cab974 Mon Sep 17 00:00:00 2001 From: Justin Chung Date: Wed, 22 Apr 2026 15:58:25 -0500 Subject: [PATCH 1/2] Skip Store Publish when No Channel Seleceted --- .pipelines/templates/package-store-package.yml | 18 ++++++++++++++---- .pipelines/templates/release-MSIX-Publish.yml | 10 ++++++---- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/.pipelines/templates/package-store-package.yml b/.pipelines/templates/package-store-package.yml index 6abddae6851..e9d1e612105 100644 --- a/.pipelines/templates/package-store-package.yml +++ b/.pipelines/templates/package-store-package.yml @@ -79,10 +79,19 @@ jobs: $currentChannel = if ($IsLTS) { 'LTS' } elseif ($IsStable) { 'Stable' } elseif ($IsPreview) { 'Preview' } - else { - Write-Error "No valid channel detected" - exit 1 - } + else { $null } + + if (-not $currentChannel) { + Write-Host "##[warning]No release channel selected (LTS/Stable/Preview all false). Skipping Store package creation." + Write-Host "##vso[task.setvariable variable=SkipStorePublish]true" + # Set channel flags so any downstream conditioned tasks evaluate to skip. + Write-Host "##vso[task.setvariable variable=LTS]false" + Write-Host "##vso[task.setvariable variable=STABLE]false" + Write-Host "##vso[task.setvariable variable=PREVIEW]false" + return + } + + Write-Host "##vso[task.setvariable variable=SkipStorePublish]false" $config = $channelConfigs[$currentChannel] Write-Verbose -Verbose "Selected channel: $currentChannel" @@ -242,3 +251,4 @@ jobs: exit 1 } displayName: 'Upload StoreBroker Package' + condition: and(succeeded(), ne(variables['SkipStorePublish'], 'true')) diff --git a/.pipelines/templates/release-MSIX-Publish.yml b/.pipelines/templates/release-MSIX-Publish.yml index cbbdb70cc4f..3141ec6581d 100644 --- a/.pipelines/templates/release-MSIX-Publish.yml +++ b/.pipelines/templates/release-MSIX-Publish.yml @@ -83,10 +83,12 @@ jobs: $currentChannel = if ($IsLTS) { 'LTS' } elseif ($IsStable) { 'Stable' } elseif ($IsPreview) { 'Preview' } - else { - Write-Error "No valid channel detected" - exit 1 - } + else { $null } + + if (-not $currentChannel) { + Write-Host "##[warning]No release channel selected (LTS/Stable/Preview all false). Skipping Store publish." + return + } # Assign AppID for Store-Publish Task $appID = $null From 115d3f323c09d524ddba2caa41e26e2bd33e7703 Mon Sep 17 00:00:00 2001 From: Justin Chung Date: Tue, 2 Jun 2026 14:41:11 -0500 Subject: [PATCH 2/2] copilot fixes --- .pipelines/templates/package-store-package.yml | 5 +++++ .pipelines/templates/release-MSIX-Publish.yml | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.pipelines/templates/package-store-package.yml b/.pipelines/templates/package-store-package.yml index e9d1e612105..4ee2098332e 100644 --- a/.pipelines/templates/package-store-package.yml +++ b/.pipelines/templates/package-store-package.yml @@ -88,6 +88,11 @@ jobs: Write-Host "##vso[task.setvariable variable=LTS]false" Write-Host "##vso[task.setvariable variable=STABLE]false" Write-Host "##vso[task.setvariable variable=PREVIEW]false" + # Ensure the output directory exists so downstream artifact publishing does not fail. + $outputDirectory = "$(ob_outputDirectory)" + if (-not (Test-Path -LiteralPath $outputDirectory)) { + New-Item -ItemType Directory -Path $outputDirectory -Force | Out-Null + } return } diff --git a/.pipelines/templates/release-MSIX-Publish.yml b/.pipelines/templates/release-MSIX-Publish.yml index 3141ec6581d..a68755725ce 100644 --- a/.pipelines/templates/release-MSIX-Publish.yml +++ b/.pipelines/templates/release-MSIX-Publish.yml @@ -34,6 +34,7 @@ jobs: displayName: 'Capture ReleaseTag and Downloaded Packages' - task: PowerShell@2 + condition: or(eq(variables['LTS'], 'true'), eq(variables['STABLE'], 'true'), eq(variables['PREVIEW'], 'true')) inputs: targetType: inline script: | @@ -70,12 +71,13 @@ jobs: displayName: 'Add Changelog Link and Version Number to SBJSON' - task: PowerShell@2 + condition: or(eq(variables['LTS'], 'true'), eq(variables['STABLE'], 'true'), eq(variables['PREVIEW'], 'true')) inputs: targetType: inline script: | # Convert ADO variables to PowerShell boolean variables $IsLTS = '$(LTS)' -eq 'true' - $IsStable = '$(STABLE)' -eq 'true' + $IsStable = '$(STABLE)' -eq 'true' $IsPreview = '$(PREVIEW)' -eq 'true' Write-Verbose -Verbose "Channel Selection - LTS: $(LTS), Stable: $(STABLE), Preview: $(PREVIEW)"