diff --git a/.pipelines/DSC-Official.yml b/.pipelines/DSC-Official.yml index 4d9cf7259..f0f148e54 100644 --- a/.pipelines/DSC-Official.yml +++ b/.pipelines/DSC-Official.yml @@ -495,6 +495,52 @@ extends: isDraft: true isPreRelease: '$(IsPreRelease)' + - task: PowerShell@2 + displayName: Update PDP.xml for Store release + inputs: + targetType: 'inline' + script: | + $pdpPath = '$(System.DefaultWorkingDirectory)/DSC/.pipelines/store/PDP/en-US/PDP.xml' + if (-not (Test-Path -Path $pdpPath)) { + throw "PDP path '$pdpPath' does not exist. Cannot update PDP.xml." + } + + $sbConfigPath = '$(System.DefaultWorkingDirectory)/DSC/.pipelines/store/SBConfig.json' + if (-not (Test-Path -Path $sbConfigPath)) { + throw "SBConfig path '$sbConfigPath' does not exist. Cannot update SBConfig.json." + } + + $pdpContent = Get-Content -Path $pdpPath -Raw + $appName = if ($(isPreRelease) -eq 'true') { + 'DesiredStateConfiguration-Preview' + } else { + 'DesiredStateConfiguration' + } + $pdpContent = $pdpContent.Replace('$AppName$', $appName) + Set-Content -Path $pdpPath -Value $pdpContent + Write-Host "PDP.xml updated successfully with AppName: $appName" + + $sbConfigContent = Get-Content -Path $sbConfigPath -Raw + $productId = if ($(isPreRelease) -eq 'true') { + 'Microsoft.DesiredStateConfiguration-Preview' + } else { + 'Microsoft.DesiredStateConfiguration' + } + $sbConfigContent = $sbConfigContent.Replace('$ProductID$', $productId) + Set-Content -Path $sbConfigPath -Value $sbConfigContent + Write-Host "SBConfig.json updated successfully with ProductID: $productId" + + - task: MS-RDX-MRO.windows-store-publish.package-task.store-package@3 + displayName: Publish to Microsoft Store + inputs: + serviceEndpoint: + sbConfigPath: '$(System.DefaultWorkingDirectory)/DSC/.pipelines/store/SBConfig.json' + sourceFolder: '$(GitHubReleaseDirectory)' + contents: '*.msixbundle' + outSBName: 'DesiredStateConfigurationStorePackage' + pdpPath: '$(System.DefaultWorkingDirectory)/DSC/.pipelines/store/PDP/en-US/PDP.xml' + pdpMediaPath: '$(System.DefaultWorkingDirectory)/DSC/.pipelines/store/PDP/PDP-Media/en-US' + - stage: ReleaseUniversalPackage dependsOn: ['BuildAndSign','Release'] condition: and(succeeded(), ne(variables['Build.Reason'], 'Schedule'), eq(variables.officialBuild, true)) diff --git a/.pipelines/Store/PDP-Media/en-US/Desktop.png b/.pipelines/Store/PDP-Media/en-US/Desktop.png new file mode 100644 index 000000000..f47bcc5f4 Binary files /dev/null and b/.pipelines/Store/PDP-Media/en-US/Desktop.png differ diff --git a/.pipelines/Store/PDP-Media/en-US/StoreLogo.png b/.pipelines/Store/PDP-Media/en-US/StoreLogo.png new file mode 100644 index 000000000..8f2f37130 Binary files /dev/null and b/.pipelines/Store/PDP-Media/en-US/StoreLogo.png differ diff --git a/.pipelines/Store/PDP/en-US/PDP.xml b/.pipelines/Store/PDP/en-US/PDP.xml new file mode 100644 index 000000000..51042845d --- /dev/null +++ b/.pipelines/Store/PDP/en-US/PDP.xml @@ -0,0 +1,152 @@ + + + + + + + + + + + + + Configuration + + DSC + + Configuration Management + + Command Line + + MCP + + Settings Management + + Settings Discovery + + + Microsoft's Desired State Configuration (DSC) is a declarative configuration platform. With DSC, the state of a machine is described using a format that should be clear to understand even if the reader isn't a subject matter expert. Unlike imperative tools, with DSC the definition of an application environment is separate from the script logic that implements how it's delivered. + + + + + + + + + + + + + + + + + + + + + + Please see our GitHub releases page for additional details: https://github.com/powershell/dsc/releases + + + + + + Desktop + + + + + + + + + + + + + + + + + + + Author DSC Resources to manage your systems in any language. + + Invoke individual resources. + + Create configuration documents that define the desired state of a system. + + Export current state of a system as a configuration document to be applied to other systems. + + Works as an MCP Server to enable agents to author configurations and use DSC resources on the system. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Microsoft Corporation + + + + + https://github.com/PowerShell/DSC + + https://github.com/PowerShell/DSC/issues + + https://go.microsoft.com/fwlink/?LinkID=521839 + diff --git a/.pipelines/Store/SBConfig.json b/.pipelines/Store/SBConfig.json new file mode 100644 index 000000000..aed128667 --- /dev/null +++ b/.pipelines/Store/SBConfig.json @@ -0,0 +1,69 @@ +{ + "helpUri": "https:\\\\aka.ms\\StoreBroker_Config", + "schemaVersion": 2, + "packageParameters": { + "PDPRootPath": "", + "Release": "", + "PDPInclude": [ + "PDP.xml" + ], + "PDPExclude": [], + "LanguageExclude": [ + "default", + "qps-ploc", + "qps-ploca", + "qps-plocm" + ], + "MediaRootPath": "", + "MediaFallbackLanguage": "en-US", + "PackagePath": [], + "OutPath": "", + "OutName": "", + "DisableAutoPackageNameFormatting": false + }, + "appSubmission": { + "productId": "$ProductID$", + "targetPublishMode": "Immediate", + "targetPublishDate": null, + "visibility": "NotSet", + "pricing": { + "priceId": "NotAvailable", + "trialPeriod": "NoFreeTrial", + "marketSpecificPricings": {}, + "sales": [] + }, + "allowTargetFutureDeviceFamilies": { + "Xbox": false, + "Team": false, + "Holographic": false, + "Desktop": false, + "Mobile": false + }, + "allowMicrosoftDecideAppAvailabilityToFutureDeviceFamilies": false, + "enterpriseLicensing": "None", + "applicationCategory": "NotSet", + "hardwarePreferences": [], + "hasExternalInAppProducts": false, + "meetAccessibilityGuidelines": false, + "canInstallOnRemovableMedia": false, + "automaticBackupEnabled": false, + "isGameDvrEnabled": false, + "gamingOptions": [ + { + "genres": [], + "isLocalMultiplayer": false, + "isLocalCooperative": false, + "isOnlineMultiplayer": false, + "isOnlineCooperative": false, + "localMultiplayerMinPlayers": 0, + "localMultiplayerMaxPlayers": 0, + "localCooperativeMinPlayers": 0, + "localCooperativeMaxPlayers": 0, + "isBroadcastingPrivilegeGranted": false, + "isCrossPlayEnabled": false, + "kinectDataForExternal": "Disabled" + } + ], + "notesForCertification": "" + } +}