Skip to content

Commit 1219bac

Browse files
authored
Merge pull request #1196 from SteveL-MSFT/publish-store
Update release pipeline to publish to Microsoft Store
2 parents 1310751 + 67f212d commit 1219bac

File tree

5 files changed

+267
-0
lines changed

5 files changed

+267
-0
lines changed

.pipelines/DSC-Official.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,52 @@ extends:
514514
isDraft: true
515515
isPreRelease: '$(IsPreRelease)'
516516

517+
- task: PowerShell@2
518+
displayName: Update PDP.xml for Store release
519+
inputs:
520+
targetType: 'inline'
521+
script: |
522+
$pdpPath = '$(System.DefaultWorkingDirectory)/DSC/.pipelines/store/PDP/en-US/PDP.xml'
523+
if (-not (Test-Path -Path $pdpPath)) {
524+
throw "PDP path '$pdpPath' does not exist. Cannot update PDP.xml."
525+
}
526+
527+
$sbConfigPath = '$(System.DefaultWorkingDirectory)/DSC/.pipelines/store/SBConfig.json'
528+
if (-not (Test-Path -Path $sbConfigPath)) {
529+
throw "SBConfig path '$sbConfigPath' does not exist. Cannot update SBConfig.json."
530+
}
531+
532+
$pdpContent = Get-Content -Path $pdpPath -Raw
533+
$appName = if ($(isPreRelease) -eq 'true') {
534+
'DesiredStateConfiguration-Preview'
535+
} else {
536+
'DesiredStateConfiguration'
537+
}
538+
$pdpContent = $pdpContent.Replace('$AppName$', $appName)
539+
Set-Content -Path $pdpPath -Value $pdpContent
540+
Write-Host "PDP.xml updated successfully with AppName: $appName"
541+
542+
$sbConfigContent = Get-Content -Path $sbConfigPath -Raw
543+
$productId = if ($(isPreRelease) -eq 'true') {
544+
'Microsoft.DesiredStateConfiguration-Preview'
545+
} else {
546+
'Microsoft.DesiredStateConfiguration'
547+
}
548+
$sbConfigContent = $sbConfigContent.Replace('$ProductID$', $productId)
549+
Set-Content -Path $sbConfigPath -Value $sbConfigContent
550+
Write-Host "SBConfig.json updated successfully with ProductID: $productId"
551+
552+
- task: MS-RDX-MRO.windows-store-publish.package-task.store-package@3
553+
displayName: Publish to Microsoft Store
554+
inputs:
555+
serviceEndpoint: dsc-store
556+
sbConfigPath: '$(System.DefaultWorkingDirectory)/DSC/.pipelines/store/SBConfig.json'
557+
sourceFolder: '$(GitHubReleaseDirectory)'
558+
contents: '*.msixbundle'
559+
outSBName: 'DesiredStateConfigurationStorePackage'
560+
pdpPath: '$(System.DefaultWorkingDirectory)/DSC/.pipelines/store/PDP/en-US/PDP.xml'
561+
pdpMediaPath: '$(System.DefaultWorkingDirectory)/DSC/.pipelines/store/PDP/PDP-Media/en-US'
562+
517563
- stage: ReleaseUniversalPackage
518564
dependsOn: ['BuildAndSign','Release']
519565
condition: and(succeeded(), ne(variables['Build.Reason'], 'Schedule'), eq(variables.officialBuild, true))
188 KB
Loading
12.2 KB
Loading

.pipelines/Store/PDP/en-US/PDP.xml

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<ProductDescription language="en-us"
3+
xmlns="http://schemas.microsoft.com/appx/2012/ProductDescription"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="en-us" Release="">
5+
<AppStoreName _locID="$AppName$">
6+
<!-- This is optional. AppStoreName is typically extracted from your package's AppxManifest DisplayName property. -->
7+
<!-- Uncomment (and localize) this Store name if your application package does not contain a localization for the DisplayName in this language. -->
8+
<!-- Leaving this uncommented for a language that your application package DOES contain a DisplayName for will result in a submission failure with the API. -->
9+
<!-- _locComment_text="{MaxLength=200} App AppStoreName" -->
10+
<!-- Dev Home -->
11+
</AppStoreName>
12+
<Keywords>
13+
<!-- Valid length: 30 character limit, up to 7 elements -->
14+
<Keyword _locID="App_keyword1">
15+
<!-- _locComment_text="{MaxLength=30} App keyword 1" -->Configuration</Keyword>
16+
<Keyword _locID="App_keyword2">
17+
<!-- _locComment_text="{MaxLength=30} App keyword 2" -->DSC</Keyword>
18+
<Keyword _locID="App_keyword3">
19+
<!-- _locComment_text="{MaxLength=30} App keyword 3" -->Configuration Management</Keyword>
20+
<Keyword _locID="App_keyword4">
21+
<!-- _locComment_text="{MaxLength=30} App keyword 4" -->Command Line</Keyword>
22+
<Keyword _locID="App_keyword5">
23+
<!-- _locComment_text="{MaxLength=30} App keyword 5" -->MCP</Keyword>
24+
<Keyword _locID="App_keyword6">
25+
<!-- _locComment_text="{MaxLength=30} App keyword 6" -->Settings Management</Keyword>
26+
<Keyword _locID="App_keyword7">
27+
<!-- _locComment_text="{MaxLength=30} App keyword 7" -->Settings Discovery</Keyword>
28+
</Keywords>
29+
<Description _locID="App_Description">
30+
<!-- _locComment_text="{MaxLength=10000} {Locked=Windows} App Description" -->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.</Description>
31+
<ShortDescription _locID="App_ShortDescription">
32+
<!-- Only used for games. This description appears in the Information section of the Game Hub on Xbox One, and helps customers understand more about your game. -->
33+
<!-- _locComment_text="{MaxLength=500} App ShortDescription" -->
34+
</ShortDescription>
35+
<ShortTitle _locID="App_ShortTitle">
36+
<!-- A shorter version of your product's name. If provided, this shorter name may appear in various places on Xbox One (during installation, in Achievements, etc.) in place of the full title of your product. -->
37+
<!-- _locComment_text="{MaxLength=50} App ShortTitle" -->
38+
</ShortTitle>
39+
<SortTitle _locID="App_SortTitle">
40+
<!-- If your product could be alphabetized in different ways, you can enter another version here. This may help customers find the product more quickly when searching. -->
41+
<!-- _locComment_text="{MaxLength=255} App SortTitle" -->
42+
</SortTitle>
43+
<VoiceTitle _locID="App_VoiceTitle">
44+
<!-- An alternate name for your product that, if provided, may be used in the audio experience on Xbox One when using Kinect or a headset. -->
45+
<!-- _locComment_text="{MaxLength=255} App VoiceTitle" -->
46+
</VoiceTitle>
47+
<DevStudio _locID="App_DevStudio">
48+
<!-- Specify this value if you want to include a "Developed by" field in the listing. (The "Published by" field will list the publisher display name associated with your account, whether or not you provide a devStudio value.) -->
49+
<!-- _locComment_text="{MaxLength=255} App DevStudio" -->
50+
</DevStudio>
51+
<ReleaseNotes _locID="App_ReleaseNotes">
52+
<!-- _locComment_text="{MaxLength=1500} {Locked=__VERSION_NUMBER__} App Release Note" -->Please see our GitHub releases page for additional details: https://github.com/powershell/dsc/releases</ReleaseNotes>
53+
<ScreenshotCaptions>
54+
<!-- Valid length: 200 character limit, up to 9 elements per platform -->
55+
<!-- Valid attributes: any of DesktopImage, MobileImage, XboxImage, SurfaceHubImage, and HoloLensImage -->
56+
<Caption DesktopImage="Desktop.png" _locID="App_caption1">
57+
<!-- _locComment_text="{MaxLength=200} Screenshot caption 1" -->
58+
Desktop
59+
</Caption>
60+
</ScreenshotCaptions>
61+
<AdditionalAssets>
62+
<Icon FileName="StoreLogo.png" />
63+
<!-- Valid elements:-->
64+
<!-- HeroImage414x180, HeroImage846x468, HeroImage558x756, HeroImage414x468, HeroImage558x558, HeroImage2400x1200,-->
65+
<!-- ScreenshotWXGA, ScreenshotHD720, ScreenshotWVGA, Doublewide, Panoramic, Square,-->
66+
<!-- SmallMobileTile, SmallXboxLiveTile, LargeMobileTile, LargeXboxLiveTile, Tile,-->
67+
<!-- DesktopIcon, Icon (use this value for the 1:1 300x300 pixels logo), AchievementIcon,-->
68+
<!-- ChallengePromoIcon, RewardDisplayIcon, Icon150X150, Icon71X71,-->
69+
<!-- BoxArt, BrandedKeyArt, PosterArt, FeaturedPromotionalArt, PromotionalArt16x9, TitledHeroArt-->
70+
<!-- There is no content for any of these elements, just a single attribute called FileName. -->
71+
</AdditionalAssets>
72+
<Trailers>
73+
</Trailers>
74+
<AppFeatures>
75+
<!-- Valid length: 200 character limit, up to 20 elements -->
76+
<AppFeature _locID="App_feature1">
77+
<!-- _locComment_text="{MaxLength=200} App Feature 1" -->Author DSC Resources to manage your systems in any language.</AppFeature>
78+
<AppFeature _locID="App_feature2">
79+
<!-- _locComment_text="{MaxLength=200} App Feature 2" -->Invoke individual resources.</AppFeature>
80+
<AppFeature _locID="App_feature3">
81+
<!-- _locComment_text="{MaxLength=200} App Feature 3" -->Create configuration documents that define the desired state of a system.</AppFeature>
82+
<AppFeature _locID="App_feature4">
83+
<!-- _locComment_text="{MaxLength=200} App Feature 4" -->Export current state of a system as a configuration document to be applied to other systems.</AppFeature>
84+
<AppFeature _locID="App_feature5">
85+
<!-- _locComment_text="{MaxLength=200} App Feature 5" -->Works as an MCP Server to enable agents to author configurations and use DSC resources on the system.</AppFeature>
86+
<AppFeature _locID="App_feature6">
87+
<!-- _locComment_text="{MaxLength=200} App Feature 6" -->
88+
</AppFeature>
89+
<AppFeature _locID="App_feature7">
90+
<!-- _locComment_text="{MaxLength=200} App Feature 7" -->
91+
</AppFeature>
92+
<AppFeature _locID="App_feature8">
93+
<!-- _locComment_text="{MaxLength=200} App Feature 8" -->
94+
</AppFeature>
95+
<AppFeature _locID="App_feature9">
96+
<!-- _locComment_text="{MaxLength=200} App Feature 9" -->
97+
</AppFeature>
98+
<AppFeature _locID="App_feature10">
99+
<!-- _locComment_text="{MaxLength=200} App Feature 10" -->
100+
</AppFeature>
101+
<AppFeature _locID="App_feature11">
102+
<!-- _locComment_text="{MaxLength=200} App Feature 11" -->
103+
</AppFeature>
104+
<AppFeature _locID="App_feature12">
105+
<!-- _locComment_text="{MaxLength=200} App Feature 12" -->
106+
</AppFeature>
107+
<AppFeature _locID="App_feature13">
108+
<!-- _locComment_text="{MaxLength=200} App Feature 13" -->
109+
</AppFeature>
110+
<AppFeature _locID="App_feature14">
111+
<!-- _locComment_text="{MaxLength=200} App Feature 14" -->
112+
</AppFeature>
113+
<AppFeature _locID="App_feature15">
114+
<!-- _locComment_text="{MaxLength=200} App Feature 15" -->
115+
</AppFeature>
116+
<AppFeature _locID="App_feature16">
117+
<!-- _locComment_text="{MaxLength=200} App Feature 16" -->
118+
</AppFeature>
119+
<AppFeature _locID="App_feature17">
120+
<!-- _locComment_text="{MaxLength=200} App Feature 17" -->
121+
</AppFeature>
122+
<AppFeature _locID="App_feature18">
123+
<!-- _locComment_text="{MaxLength=200} App Feature 18" -->
124+
</AppFeature>
125+
<AppFeature _locID="App_feature19">
126+
<!-- _locComment_text="{MaxLength=200} App Feature 19" -->
127+
</AppFeature>
128+
<AppFeature _locID="App_feature20">
129+
<!-- _locComment_text="{MaxLength=200} App Feature 20" -->
130+
</AppFeature>
131+
</AppFeatures>
132+
<RecommendedHardware>
133+
<!-- Valid length: 200 character limit, up to 11 elements -->
134+
<Recommendation _locID="App_RecommendedHW1">
135+
<!-- _locComment_text="{MaxLength=200} App Recommended Hardware 1" -->
136+
</Recommendation>
137+
</RecommendedHardware>
138+
<MinimumHardware>
139+
<!-- Valid length: 200 character limit, up to 11 elements -->
140+
</MinimumHardware>
141+
<CopyrightAndTrademark _locID="App_CopyrightandTrademark">
142+
<!-- _locComment_text="{MaxLength=200} Copyright and Trademark" -->Microsoft Corporation</CopyrightAndTrademark>
143+
<AdditionalLicenseTerms _locID="App_AdditionalLicenseTerms">
144+
<!-- _locComment_text="{MaxLength=10000} Additional License Terms" -->
145+
</AdditionalLicenseTerms>
146+
<WebsiteURL _locID="App_WebsiteURL">
147+
<!-- _locComment_text="{MaxLength=2048} WebsiteURL" -->https://github.com/PowerShell/DSC</WebsiteURL>
148+
<SupportContactInfo _locID="App_SupportContactInfo">
149+
<!-- _locComment_text="{MaxLength=2048} Support Contact Info" -->https://github.com/PowerShell/DSC/issues</SupportContactInfo>
150+
<PrivacyPolicyURL _locID="App_PrivacyURL">
151+
<!-- _locComment_text="{MaxLength=2048} Privacy Policy URL" -->https://go.microsoft.com/fwlink/?LinkID=521839</PrivacyPolicyURL>
152+
</ProductDescription>

.pipelines/Store/SBConfig.json

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
{
2+
"helpUri": "https:\\\\aka.ms\\StoreBroker_Config",
3+
"schemaVersion": 2,
4+
"packageParameters": {
5+
"PDPRootPath": "",
6+
"Release": "",
7+
"PDPInclude": [
8+
"PDP.xml"
9+
],
10+
"PDPExclude": [],
11+
"LanguageExclude": [
12+
"default",
13+
"qps-ploc",
14+
"qps-ploca",
15+
"qps-plocm"
16+
],
17+
"MediaRootPath": "",
18+
"MediaFallbackLanguage": "en-US",
19+
"PackagePath": [],
20+
"OutPath": "",
21+
"OutName": "",
22+
"DisableAutoPackageNameFormatting": false
23+
},
24+
"appSubmission": {
25+
"productId": "$ProductID$",
26+
"targetPublishMode": "Immediate",
27+
"targetPublishDate": null,
28+
"visibility": "NotSet",
29+
"pricing": {
30+
"priceId": "NotAvailable",
31+
"trialPeriod": "NoFreeTrial",
32+
"marketSpecificPricings": {},
33+
"sales": []
34+
},
35+
"allowTargetFutureDeviceFamilies": {
36+
"Xbox": false,
37+
"Team": false,
38+
"Holographic": false,
39+
"Desktop": false,
40+
"Mobile": false
41+
},
42+
"allowMicrosoftDecideAppAvailabilityToFutureDeviceFamilies": false,
43+
"enterpriseLicensing": "None",
44+
"applicationCategory": "NotSet",
45+
"hardwarePreferences": [],
46+
"hasExternalInAppProducts": false,
47+
"meetAccessibilityGuidelines": false,
48+
"canInstallOnRemovableMedia": false,
49+
"automaticBackupEnabled": false,
50+
"isGameDvrEnabled": false,
51+
"gamingOptions": [
52+
{
53+
"genres": [],
54+
"isLocalMultiplayer": false,
55+
"isLocalCooperative": false,
56+
"isOnlineMultiplayer": false,
57+
"isOnlineCooperative": false,
58+
"localMultiplayerMinPlayers": 0,
59+
"localMultiplayerMaxPlayers": 0,
60+
"localCooperativeMinPlayers": 0,
61+
"localCooperativeMaxPlayers": 0,
62+
"isBroadcastingPrivilegeGranted": false,
63+
"isCrossPlayEnabled": false,
64+
"kinectDataForExternal": "Disabled"
65+
}
66+
],
67+
"notesForCertification": ""
68+
}
69+
}

0 commit comments

Comments
 (0)