Build with Visual Studio 2022 (#1793)
- Use Visual Studio 2022 - Use an Azure Pipelines image which has Visual Studio 2022 installed - Use the v143 C++ build tools - Use the Windows SDK version 22000 - Raise the minimum platform version to 17763 - As a consequence of this change, we will use the "msix" file extension instead of "appx" for our packages - Update UI tests from .NET Core 2.1 to .NET Core 3.1
This commit is contained in:
154
build/pipelines/templates/package-msixbundle.yaml
Normal file
154
build/pipelines/templates/package-msixbundle.yaml
Normal file
@@ -0,0 +1,154 @@
|
||||
# This template contains a job which takes .msix packages which were built separately for each
|
||||
# architecture (arm, x86, etc.) and combines them into a single .msixbundle. In release builds,
|
||||
# this job also signs the bundle and creates StoreBroker packages.
|
||||
|
||||
parameters:
|
||||
signBundle: false
|
||||
createStoreBrokerPackages: false
|
||||
|
||||
jobs:
|
||||
- job: Package
|
||||
dependsOn:
|
||||
- Buildx64
|
||||
- Buildx86
|
||||
- BuildARM
|
||||
condition: |
|
||||
and
|
||||
(
|
||||
in(dependencies.Buildx64.result, 'Succeeded', 'SucceededWithIssues', 'Skipped'),
|
||||
in(dependencies.Buildx86.result, 'Succeeded', 'SucceededWithIssues', 'Skipped'),
|
||||
in(dependencies.BuildARM.result, 'Succeeded', 'SucceededWithIssues', 'Skipped')
|
||||
)
|
||||
pool:
|
||||
vmImage: windows-2022
|
||||
variables:
|
||||
skipComponentGovernanceDetection: true
|
||||
StoreBrokerMediaRootPath: $(TEMP)\SBMedia
|
||||
StoreBrokerPackagePath: $(Build.ArtifactStagingDirectory)\storeBrokerPayload
|
||||
steps:
|
||||
- checkout: self
|
||||
fetchDepth: 1
|
||||
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: Download all .msix artifacts
|
||||
inputs:
|
||||
artifactName: drop
|
||||
itemPattern: '**/*.msix'
|
||||
|
||||
- ${{ if eq(parameters.createStoreBrokerPackages, true) }}:
|
||||
- task: UniversalPackages@0
|
||||
displayName: Download internals package
|
||||
inputs:
|
||||
command: download
|
||||
downloadDirectory: $(Build.SourcesDirectory)
|
||||
vstsFeed: WindowsInboxApps
|
||||
vstsFeedPackage: calculator-internals
|
||||
vstsPackageVersion: 0.0.67
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Generate MsixBundle mapping
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)\build\scripts\CreateMsixBundleMapping.ps1
|
||||
arguments: '-InputPath $(Build.ArtifactStagingDirectory)\drop\Release -ProjectName Calculator -OutputFile $(Build.BinariesDirectory)\MsixBundleMapping.txt'
|
||||
|
||||
- powershell: |
|
||||
$buildVersion = [version]$Env:BUILDVERSION
|
||||
$bundleVersion = "2021.$($buildVersion.Minor).$($buildVersion.Build).$($buildVersion.Revision)"
|
||||
& "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64\MakeAppx.exe" bundle /v /bv $bundleVersion /f $Env:MAPPINGFILEPATH /p $Env:OUTPUTPATH
|
||||
displayName: Make MsixBundle
|
||||
env:
|
||||
BUILDVERSION: $(Build.BuildNumber)
|
||||
MAPPINGFILEPATH: $(Build.BinariesDirectory)\MsixBundleMapping.txt
|
||||
OUTPUTPATH: $(Build.BinariesDirectory)\Microsoft.WindowsCalculator_8wekyb3d8bbwe.msixbundle
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: Copy MsixBundle to staging directory
|
||||
inputs:
|
||||
sourceFolder: $(Build.BinariesDirectory)
|
||||
contents: Microsoft.WindowsCalculator_8wekyb3d8bbwe.msixbundle
|
||||
targetFolder: $(Build.ArtifactStagingDirectory)\msixBundle
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Publish MsixBundle artifact
|
||||
inputs:
|
||||
artifactName: msixBundle
|
||||
pathToPublish: $(Build.ArtifactStagingDirectory)\msixBundle
|
||||
|
||||
- ${{ if eq(parameters.signBundle, true) }}:
|
||||
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
||||
displayName: Send msixbundle to code signing service
|
||||
inputs:
|
||||
ConnectedServiceName: Essential Experiences Codesign
|
||||
FolderPath: $(Build.ArtifactStagingDirectory)\msixBundle
|
||||
Pattern: Microsoft.WindowsCalculator_8wekyb3d8bbwe.msixbundle
|
||||
signConfigType: inlineSignParams
|
||||
inlineOperation: |
|
||||
[
|
||||
{
|
||||
"CertTemplateName": "WINMSAPP1ST",
|
||||
"CertSubjectName": "CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US",
|
||||
"KeyCode": "Dynamic",
|
||||
"OperationCode": "SigntoolvNextSign",
|
||||
"Parameters": {
|
||||
"OpusName": "Microsoft",
|
||||
"OpusInfo": "http://www.microsoft.com",
|
||||
"FileDigest": "/fd \"SHA256\"",
|
||||
"TimeStamp": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
|
||||
},
|
||||
"ToolName": "sign",
|
||||
"ToolVersion": "1.0"
|
||||
},
|
||||
{
|
||||
"CertTemplateName": "WINMSAPP1ST",
|
||||
"CertSubjectName": "CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US",
|
||||
"KeyCode": "Dynamic",
|
||||
"OperationCode": "SigntoolvNextVerify",
|
||||
"Parameters": {},
|
||||
"ToolName": "sign",
|
||||
"ToolVersion": "1.0"
|
||||
}
|
||||
]
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Publish MsixBundleSigned artifact
|
||||
inputs:
|
||||
pathtoPublish: $(Build.ArtifactStagingDirectory)\msixBundle
|
||||
artifactName: msixBundleSigned
|
||||
|
||||
- ${{ if eq(parameters.createStoreBrokerPackages, true) }}:
|
||||
- powershell: |
|
||||
# Just modify this line to indicate where your en-us PDP file is. Leave the other lines alone.
|
||||
$enUSPdpFilePath = "$(Build.SourcesDirectory)\PDP\en-US\PDP.xml"
|
||||
|
||||
# This is going to save the release value from the PDP file to $(SBMediaReleaseVersion)
|
||||
# which you can then refer to in the UniversalPackages task.
|
||||
$release = ([xml](Get-Content $enUSPdpFilePath)).ProductDescription.Release.Trim()
|
||||
Write-Host "##vso[task.setvariable variable=SBMediaReleaseVersion;]$release"
|
||||
displayName: Determine the PDP Media release version from the en-us PDP file
|
||||
|
||||
- task: UniversalPackages@0
|
||||
displayName: Download PDP media (screenshots, trailers) universal package
|
||||
inputs:
|
||||
command: download
|
||||
downloadDirectory: $(StoreBrokerMediaRootPath)/$(SBMediaReleaseVersion)
|
||||
vstsFeed: WindowsInboxApps
|
||||
vstsFeedPackage: calculator-pdp-media
|
||||
vstsPackageVersion: $(SBMediaReleaseVersion)
|
||||
|
||||
- task: MS-RDX-MRO.windows-store-publish-dev.package-task.store-package@2
|
||||
displayName: Create StoreBroker Payload
|
||||
inputs:
|
||||
serviceEndpoint: Calculator StoreBroker Connection
|
||||
sbConfigPath: Tools/Build/StoreBroker/SBCalculatorConfig.json
|
||||
sourceFolder: $(Build.ArtifactStagingDirectory)/msixBundle
|
||||
contents: Microsoft.WindowsCalculator_8wekyb3d8bbwe.msixbundle
|
||||
pdpPath: $(Build.SourcesDirectory)\PDP
|
||||
pdpInclude: PDP.xml
|
||||
pdpMediaPath: $(StoreBrokerMediaRootPath)
|
||||
outSBPackagePath: $(StoreBrokerPackagePath)
|
||||
outSBName: SBCalculator
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Publish StoreBroker Payload artifact
|
||||
inputs:
|
||||
pathtoPublish: $(StoreBrokerPackagePath)
|
||||
artifactName: storeBrokerPayload
|
Reference in New Issue
Block a user