Restructure pipeline to move release steps out of Package ES (#1659)
* Pipeline update * moving download internals up in order * updated internal download step and removed duplicate isPublicRelease parameter
This commit is contained in:
parent
10ae9430a0
commit
b0e9e0ab56
@ -13,16 +13,22 @@ pr: none
|
|||||||
name: 0.$(Date:yyMM).$(DayOfMonth)$(Rev:rr).0
|
name: 0.$(Date:yyMM).$(DayOfMonth)$(Rev:rr).0
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
- template: ./templates/build-app-internal.yaml
|
- template: ./templates/build-single-architecture.yaml
|
||||||
parameters:
|
parameters:
|
||||||
|
isReleaseBuild: true
|
||||||
|
useTestVersionOfInternalsPackage: true
|
||||||
platform: x64
|
platform: x64
|
||||||
|
|
||||||
- template: ./templates/build-app-internal.yaml
|
- template: ./templates/build-single-architecture.yaml
|
||||||
parameters:
|
parameters:
|
||||||
|
isReleaseBuild: true
|
||||||
|
useTestVersionOfInternalsPackage: true
|
||||||
platform: x86
|
platform: x86
|
||||||
|
|
||||||
- template: ./templates/build-app-internal.yaml
|
- template: ./templates/build-single-architecture.yaml
|
||||||
parameters:
|
parameters:
|
||||||
|
isReleaseBuild: true
|
||||||
|
useTestVersionOfInternalsPackage: true
|
||||||
platform: ARM
|
platform: ARM
|
||||||
|
|
||||||
- template: ./templates/run-ui-tests.yaml
|
- template: ./templates/run-ui-tests.yaml
|
||||||
@ -44,3 +50,5 @@ jobs:
|
|||||||
platform: x86
|
platform: x86
|
||||||
|
|
||||||
- template: ./templates/package-appxbundle.yaml
|
- template: ./templates/package-appxbundle.yaml
|
||||||
|
parameters:
|
||||||
|
useTestVersionOfInternalsPackage: true
|
||||||
|
@ -16,21 +16,21 @@ pr:
|
|||||||
name: 0.$(Date:yyMM).$(DayOfMonth)$(Rev:rr).0
|
name: 0.$(Date:yyMM).$(DayOfMonth)$(Rev:rr).0
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
- template: ./templates/build-app-public.yaml
|
- template: ./templates/build-single-architecture.yaml
|
||||||
parameters:
|
parameters:
|
||||||
platform: x64
|
platform: x64
|
||||||
|
|
||||||
- template: ./templates/build-app-public.yaml
|
- template: ./templates/build-single-architecture.yaml
|
||||||
parameters:
|
parameters:
|
||||||
platform: x86
|
platform: x86
|
||||||
condition: not(eq(variables['Build.Reason'], 'PullRequest'))
|
condition: not(eq(variables['Build.Reason'], 'PullRequest'))
|
||||||
|
|
||||||
- template: ./templates/build-app-public.yaml
|
- template: ./templates/build-single-architecture.yaml
|
||||||
parameters:
|
parameters:
|
||||||
platform: ARM
|
platform: ARM
|
||||||
condition: not(eq(variables['Build.Reason'], 'PullRequest'))
|
condition: not(eq(variables['Build.Reason'], 'PullRequest'))
|
||||||
|
|
||||||
- template: ./templates/build-app-public.yaml
|
- template: ./templates/build-single-architecture.yaml
|
||||||
parameters:
|
parameters:
|
||||||
platform: ARM64
|
platform: ARM64
|
||||||
condition: not(eq(variables['Build.Reason'], 'PullRequest'))
|
condition: not(eq(variables['Build.Reason'], 'PullRequest'))
|
||||||
|
@ -16,21 +16,21 @@ variables:
|
|||||||
name: '$(versionMajor).$(versionMinor).$(versionBuild).$(versionPatch)'
|
name: '$(versionMajor).$(versionMinor).$(versionBuild).$(versionPatch)'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
- template: ./templates/build-app-internal.yaml
|
- template: ./templates/build-single-architecture.yaml
|
||||||
parameters:
|
parameters:
|
||||||
platform: x64
|
platform: x64
|
||||||
isPublicRelease: true
|
isReleaseBuild: true
|
||||||
|
|
||||||
- template: ./templates/build-app-internal.yaml
|
- template: ./templates/build-single-architecture.yaml
|
||||||
parameters:
|
parameters:
|
||||||
platform: x86
|
platform: x86
|
||||||
isPublicRelease: true
|
isReleaseBuild: true
|
||||||
condition: not(eq(variables['Build.Reason'], 'PullRequest'))
|
condition: not(eq(variables['Build.Reason'], 'PullRequest'))
|
||||||
|
|
||||||
- template: ./templates/build-app-internal.yaml
|
- template: ./templates/build-single-architecture.yaml
|
||||||
parameters:
|
parameters:
|
||||||
platform: ARM
|
platform: ARM
|
||||||
isPublicRelease: true
|
isReleaseBuild: true
|
||||||
condition: not(eq(variables['Build.Reason'], 'PullRequest'))
|
condition: not(eq(variables['Build.Reason'], 'PullRequest'))
|
||||||
|
|
||||||
- template: ./templates/run-unit-tests.yaml
|
- template: ./templates/run-unit-tests.yaml
|
||||||
@ -44,5 +44,7 @@ jobs:
|
|||||||
- template: ./templates/package-appxbundle.yaml
|
- template: ./templates/package-appxbundle.yaml
|
||||||
parameters:
|
parameters:
|
||||||
signBundle: true
|
signBundle: true
|
||||||
|
createStoreBrokerPackages: true
|
||||||
|
|
||||||
- template: ./templates/prepare-release-internalonly.yaml
|
- template: ./templates/release-store.yaml
|
||||||
|
- template: ./templates/release-vpack.yaml
|
@ -1,86 +0,0 @@
|
|||||||
# This template contains a job to build the app for a single architecture and run static analysis
|
|
||||||
# tools on the binaries.
|
|
||||||
# The app is built in a production configuration to be released to the Store and the Windows image.
|
|
||||||
# This job relies on Microsoft-internal resources to run.
|
|
||||||
|
|
||||||
parameters:
|
|
||||||
platform: ''
|
|
||||||
condition: ''
|
|
||||||
isPublicRelease: false
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
- job: Build${{ parameters.platform }}
|
|
||||||
displayName: Build ${{ parameters.platform }}
|
|
||||||
condition: ${{ parameters.condition }}
|
|
||||||
pool:
|
|
||||||
vmImage: windows-2019
|
|
||||||
variables:
|
|
||||||
BuildConfiguration: Release
|
|
||||||
BuildPlatform: ${{ parameters.platform }}
|
|
||||||
steps:
|
|
||||||
- checkout: self
|
|
||||||
fetchDepth: 1
|
|
||||||
|
|
||||||
- task: UniversalPackages@0
|
|
||||||
displayName: Download internals package
|
|
||||||
inputs:
|
|
||||||
command: download
|
|
||||||
downloadDirectory: $(Build.SourcesDirectory)
|
|
||||||
vstsFeed: WindowsInboxApps
|
|
||||||
vstsFeedPackage: calculator-internals
|
|
||||||
${{ if eq(parameters.isPublicRelease, true) }}:
|
|
||||||
vstsPackageVersion: 0.0.66
|
|
||||||
${{ if eq(parameters.isPublicRelease, false) }}:
|
|
||||||
vstsPackageVersion: 0.0.65
|
|
||||||
|
|
||||||
- template: ./build-single-architecture.yaml
|
|
||||||
parameters:
|
|
||||||
extraMsBuildArgs: '/p:IsStoreBuild=true'
|
|
||||||
|
|
||||||
- task: PublishSymbols@2
|
|
||||||
displayName: Publish symbols
|
|
||||||
inputs:
|
|
||||||
symbolsFolder: $(Build.BinariesDirectory)\$(BuildConfiguration)\$(BuildPlatform)
|
|
||||||
searchPattern: '**/*.pdb'
|
|
||||||
symbolServerType: teamServices
|
|
||||||
treatNotIndexedAsWarning: true
|
|
||||||
symbolsArtifactName: $(System.teamProject)/$(Build.BuildNumber)_$(BuildPlatform)$(BuildConfiguration)
|
|
||||||
|
|
||||||
- task: CopyFiles@2
|
|
||||||
displayName: Copy Files for BinSkim analysis
|
|
||||||
inputs:
|
|
||||||
SourceFolder: '$(Build.BinariesDirectory)\$(BuildConfiguration)\$(BuildPlatform)\Calculator\'
|
|
||||||
# Setting up a folder to store all the binary files that we need BinSkim to scan.
|
|
||||||
# If we put more things than we produce pdbs for and can index (such as nuget packages that ship without pdbs), binskim will fail.
|
|
||||||
# Below are ignored files
|
|
||||||
# - clrcompression.dll
|
|
||||||
Contents: |
|
|
||||||
**\*
|
|
||||||
!**\clrcompression.dll
|
|
||||||
TargetFolder: '$(Agent.BuildDirectory)\binskim'
|
|
||||||
CleanTargetFolder: true
|
|
||||||
OverWrite: true
|
|
||||||
flattenFolders: false
|
|
||||||
analyzeTarget: '$(Agent.BuildDirectory)\binskim\*'
|
|
||||||
|
|
||||||
- task: securedevelopmentteam.vss-secure-development-tools.build-task-binskim.BinSkim@3
|
|
||||||
displayName: Run BinSkim
|
|
||||||
inputs:
|
|
||||||
inputType: Basic
|
|
||||||
analyzeTarget: '$(Agent.BuildDirectory)\binskim\*'
|
|
||||||
analyzeVerbose: true
|
|
||||||
analyzeHashes: true
|
|
||||||
continueOnError: true
|
|
||||||
|
|
||||||
- task: securedevelopmentteam.vss-secure-development-tools.build-task-policheck.PoliCheck@1
|
|
||||||
displayName: Run PoliCheck
|
|
||||||
inputs:
|
|
||||||
targetType: F
|
|
||||||
|
|
||||||
- task: securedevelopmentteam.vss-secure-development-tools.build-task-publishsecurityanalysislogs.PublishSecurityAnalysisLogs@2
|
|
||||||
displayName: Publish security analysis logs
|
|
||||||
|
|
||||||
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
|
|
||||||
displayName: Detect open source components
|
|
||||||
inputs:
|
|
||||||
sourceScanPath: $(Agent.BuildDirectory)
|
|
@ -1,21 +0,0 @@
|
|||||||
# This template contains a job to build the app for a single architecture.
|
|
||||||
# Only the contents of the public repository are built; internal resources are not used.
|
|
||||||
|
|
||||||
parameters:
|
|
||||||
platform: ''
|
|
||||||
condition: ''
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
- job: Build${{ parameters.platform }}
|
|
||||||
displayName: Build ${{ parameters.platform }}
|
|
||||||
condition: ${{ parameters.condition }}
|
|
||||||
pool:
|
|
||||||
vmImage: windows-2019
|
|
||||||
variables:
|
|
||||||
BuildConfiguration: Release
|
|
||||||
BuildPlatform: ${{ parameters.platform }}
|
|
||||||
steps:
|
|
||||||
- checkout: self
|
|
||||||
fetchDepth: 1
|
|
||||||
|
|
||||||
- template: ./build-single-architecture.yaml
|
|
@ -1,10 +1,41 @@
|
|||||||
# This template contains steps to build the app for a single architecture.
|
# This template contains a job to build the app for a single architecture.
|
||||||
# The job containing these steps must set the variables 'BuildConfiguration' and 'BuildPlatform'.
|
|
||||||
|
|
||||||
parameters:
|
parameters:
|
||||||
extraMsBuildArgs: ''
|
isReleaseBuild: false
|
||||||
|
useTestVersionOfInternalsPackage: false
|
||||||
|
platform: ''
|
||||||
|
condition: ''
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
- job: Build${{ parameters.platform }}
|
||||||
|
displayName: Build ${{ parameters.platform }}
|
||||||
|
condition: ${{ parameters.condition }}
|
||||||
|
pool:
|
||||||
|
vmImage: windows-2019
|
||||||
|
variables:
|
||||||
|
BuildConfiguration: Release
|
||||||
|
BuildPlatform: ${{ parameters.platform }}
|
||||||
|
${{ if eq(parameters.isReleaseBuild, true) }}:
|
||||||
|
ExtraMSBuildArgs: '/p:IsStoreBuild=true'
|
||||||
|
${{ if eq(parameters.isReleaseBuild, false) }}:
|
||||||
|
ExtraMSBuildArgs: ''
|
||||||
|
steps:
|
||||||
|
- checkout: self
|
||||||
|
fetchDepth: 1
|
||||||
|
|
||||||
|
- ${{ if eq(parameters.isReleaseBuild, true) }}:
|
||||||
|
- task: UniversalPackages@0
|
||||||
|
displayName: Download internals package
|
||||||
|
inputs:
|
||||||
|
command: download
|
||||||
|
downloadDirectory: $(Build.SourcesDirectory)
|
||||||
|
vstsFeed: WindowsInboxApps
|
||||||
|
vstsFeedPackage: calculator-internals
|
||||||
|
${{ if eq(parameters.useTestVersionOfInternalsPackage, false) }}:
|
||||||
|
vstsPackageVersion: 0.0.66
|
||||||
|
${{ if eq(parameters.useTestVersionOfInternalsPackage, true) }}:
|
||||||
|
vstsPackageVersion: 0.0.65
|
||||||
|
|
||||||
steps:
|
|
||||||
- task: NuGetToolInstaller@1
|
- task: NuGetToolInstaller@1
|
||||||
displayName: Use NuGet 5.x
|
displayName: Use NuGet 5.x
|
||||||
inputs:
|
inputs:
|
||||||
@ -29,7 +60,7 @@ steps:
|
|||||||
inputs:
|
inputs:
|
||||||
solution: src/Calculator.sln
|
solution: src/Calculator.sln
|
||||||
vsVersion: 16.0
|
vsVersion: 16.0
|
||||||
msbuildArgs: /bl:$(Build.BinariesDirectory)\$(BuildConfiguration)\$(BuildPlatform)\Calculator.binlog /p:OutDir=$(Build.BinariesDirectory)\$(BuildConfiguration)\$(BuildPlatform)\ /p:GenerateProjectSpecificOutputFolder=true /p:Version=$(Build.BuildNumber) /t:Publish /p:PublishDir=$(Build.BinariesDirectory)\$(BuildConfiguration)\$(BuildPlatform)\publish\ ${{ parameters.extraMsBuildArgs }}
|
msbuildArgs: /bl:$(Build.BinariesDirectory)\$(BuildConfiguration)\$(BuildPlatform)\Calculator.binlog /p:OutDir=$(Build.BinariesDirectory)\$(BuildConfiguration)\$(BuildPlatform)\ /p:GenerateProjectSpecificOutputFolder=true /p:Version=$(Build.BuildNumber) /t:Publish /p:PublishDir=$(Build.BinariesDirectory)\$(BuildConfiguration)\$(BuildPlatform)\publish\ $(ExtraMSBuildArgs)
|
||||||
platform: $(BuildPlatform)
|
platform: $(BuildPlatform)
|
||||||
configuration: $(BuildConfiguration)
|
configuration: $(BuildConfiguration)
|
||||||
maximumCpuCount: true
|
maximumCpuCount: true
|
||||||
@ -40,3 +71,52 @@ steps:
|
|||||||
artifactName: drop
|
artifactName: drop
|
||||||
pathToPublish: $(Build.BinariesDirectory)
|
pathToPublish: $(Build.BinariesDirectory)
|
||||||
parallel: true
|
parallel: true
|
||||||
|
|
||||||
|
- ${{ if eq(parameters.isReleaseBuild, true) }}:
|
||||||
|
- task: PublishSymbols@2
|
||||||
|
displayName: Publish symbols
|
||||||
|
inputs:
|
||||||
|
symbolsFolder: $(Build.BinariesDirectory)\$(BuildConfiguration)\$(BuildPlatform)
|
||||||
|
searchPattern: '**/*.pdb'
|
||||||
|
symbolServerType: teamServices
|
||||||
|
treatNotIndexedAsWarning: true
|
||||||
|
symbolsArtifactName: $(System.teamProject)/$(Build.BuildNumber)_$(BuildPlatform)$(BuildConfiguration)
|
||||||
|
|
||||||
|
- task: CopyFiles@2
|
||||||
|
displayName: Copy Files for BinSkim analysis
|
||||||
|
inputs:
|
||||||
|
SourceFolder: '$(Build.BinariesDirectory)\$(BuildConfiguration)\$(BuildPlatform)\Calculator\'
|
||||||
|
# Setting up a folder to store all the binary files that we need BinSkim to scan.
|
||||||
|
# If we put more things than we produce pdbs for and can index (such as nuget packages that ship without pdbs), binskim will fail.
|
||||||
|
# Below are ignored files
|
||||||
|
# - clrcompression.dll
|
||||||
|
Contents: |
|
||||||
|
**\*
|
||||||
|
!**\clrcompression.dll
|
||||||
|
TargetFolder: '$(Agent.BuildDirectory)\binskim'
|
||||||
|
CleanTargetFolder: true
|
||||||
|
OverWrite: true
|
||||||
|
flattenFolders: false
|
||||||
|
analyzeTarget: '$(Agent.BuildDirectory)\binskim\*'
|
||||||
|
|
||||||
|
- task: securedevelopmentteam.vss-secure-development-tools.build-task-binskim.BinSkim@3
|
||||||
|
displayName: Run BinSkim
|
||||||
|
inputs:
|
||||||
|
inputType: Basic
|
||||||
|
analyzeTarget: '$(Agent.BuildDirectory)\binskim\*'
|
||||||
|
analyzeVerbose: true
|
||||||
|
analyzeHashes: true
|
||||||
|
continueOnError: true
|
||||||
|
|
||||||
|
- task: securedevelopmentteam.vss-secure-development-tools.build-task-policheck.PoliCheck@1
|
||||||
|
displayName: Run PoliCheck
|
||||||
|
inputs:
|
||||||
|
targetType: F
|
||||||
|
|
||||||
|
- task: securedevelopmentteam.vss-secure-development-tools.build-task-publishsecurityanalysislogs.PublishSecurityAnalysisLogs@2
|
||||||
|
displayName: Publish security analysis logs
|
||||||
|
|
||||||
|
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
|
||||||
|
displayName: Detect open source components
|
||||||
|
inputs:
|
||||||
|
sourceScanPath: $(Agent.BuildDirectory)
|
@ -1,8 +1,10 @@
|
|||||||
# This template contains a job which takes .appx packages which were built separately for each
|
# This template contains a job which takes .appx packages which were built separately for each
|
||||||
# architecture (arm, x86, etc.) and combines them into a single .appxbundle.
|
# architecture (arm, x86, etc.) and combines them into a single .appxbundle. In release builds,
|
||||||
|
# this job also signs the bundle and creates StoreBroker packages.
|
||||||
|
|
||||||
parameters:
|
parameters:
|
||||||
signBundle: false
|
signBundle: false
|
||||||
|
useTestVersionOfInternalsPackage: false
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
- job: Package
|
- job: Package
|
||||||
@ -21,6 +23,8 @@ jobs:
|
|||||||
vmImage: windows-2019
|
vmImage: windows-2019
|
||||||
variables:
|
variables:
|
||||||
skipComponentGovernanceDetection: true
|
skipComponentGovernanceDetection: true
|
||||||
|
StoreBrokerMediaRootPath: $(TEMP)\SBMedia
|
||||||
|
StoreBrokerPackagePath: $(Build.ArtifactStagingDirectory)\storeBrokerPayload
|
||||||
steps:
|
steps:
|
||||||
- checkout: self
|
- checkout: self
|
||||||
fetchDepth: 1
|
fetchDepth: 1
|
||||||
@ -31,6 +35,26 @@ jobs:
|
|||||||
artifactName: drop
|
artifactName: drop
|
||||||
itemPattern: '**/*.appx'
|
itemPattern: '**/*.appx'
|
||||||
|
|
||||||
|
- ${{ 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.66
|
||||||
|
|
||||||
|
- ${{ if eq(parameters.useTestVersionOfInternalsPackage, true) }}:
|
||||||
|
- task: UniversalPackages@0
|
||||||
|
displayName: Download internals package
|
||||||
|
inputs:
|
||||||
|
command: download
|
||||||
|
downloadDirectory: $(Build.SourcesDirectory)
|
||||||
|
vstsFeed: WindowsInboxApps
|
||||||
|
vstsFeedPackage: calculator-internals
|
||||||
|
vstsPackageVersion: 0.0.65
|
||||||
|
|
||||||
- task: PowerShell@2
|
- task: PowerShell@2
|
||||||
displayName: Generate AppxBundle mapping
|
displayName: Generate AppxBundle mapping
|
||||||
inputs:
|
inputs:
|
||||||
@ -98,4 +122,43 @@ jobs:
|
|||||||
displayName: Publish AppxBundleSigned artifact
|
displayName: Publish AppxBundleSigned artifact
|
||||||
inputs:
|
inputs:
|
||||||
pathtoPublish: $(Build.ArtifactStagingDirectory)\appxBundle
|
pathtoPublish: $(Build.ArtifactStagingDirectory)\appxBundle
|
||||||
artifactName: appxBundleSigned
|
artifactName: appxBundleSigned
|
||||||
|
|
||||||
|
- ${{ 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)/appxBundle
|
||||||
|
contents: Microsoft.WindowsCalculator_8wekyb3d8bbwe.appxbundle
|
||||||
|
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
|
@ -1,151 +0,0 @@
|
|||||||
# This template contains a job which builds artifacts needed to release the app to the store and to
|
|
||||||
# Windows using Microsoft-internal systems. It relies on Microsoft-internal resources and will not
|
|
||||||
# work outside of Microsoft.
|
|
||||||
# Specifically, this job:
|
|
||||||
# - Builds VPacks for including the app in the Windows OS build. Azure DevOps Universal Packages
|
|
||||||
# offers similar capabilities.
|
|
||||||
# - Creates StoreBroker packages containing Microsoft Store assets. Although the Store assets for
|
|
||||||
# this app are not open source, the StoreBroker tool is available at
|
|
||||||
# https://github.com/Microsoft/StoreBroker.
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
- job: WindowsInternalRelease
|
|
||||||
dependsOn: Package
|
|
||||||
pool:
|
|
||||||
name: Package ES Standard Build
|
|
||||||
workspace:
|
|
||||||
clean: outputs
|
|
||||||
variables:
|
|
||||||
skipComponentGovernanceDetection: true
|
|
||||||
SBMediaRootPath: '$(TEMP)\SBMedia'
|
|
||||||
SBPackagePath: '$(Build.ArtifactStagingDirectory)\storeBrokerPayload'
|
|
||||||
SBLogPath: '$(SBPackagePath)\StoreBroker.log'
|
|
||||||
FlightId: '161f0975-cb5f-475b-8ef6-26383c37621f'
|
|
||||||
AppId: '9WZDNCRFHVN5'
|
|
||||||
ProductId: '00009007199266248474'
|
|
||||||
steps:
|
|
||||||
- checkout: self
|
|
||||||
clean: true
|
|
||||||
|
|
||||||
# This must be the first task in the job definition, since it modifies the build environment
|
|
||||||
# in ways other tasks would not expect (for example, it clears the artifacts directory).
|
|
||||||
- task: PkgESSetupBuild@10
|
|
||||||
displayName: Initialize Package ES
|
|
||||||
inputs:
|
|
||||||
productName: Calculator
|
|
||||||
disableWorkspace: true
|
|
||||||
useDfs: false
|
|
||||||
env:
|
|
||||||
XES_DISABLEPROV: true
|
|
||||||
|
|
||||||
- task: NuGetToolInstaller@1
|
|
||||||
displayName: Use NuGet 5.x
|
|
||||||
inputs:
|
|
||||||
versionSpec: 5.x
|
|
||||||
|
|
||||||
- task: DownloadBuildArtifacts@0
|
|
||||||
displayName: Download appxBundleSigned artifact
|
|
||||||
inputs:
|
|
||||||
artifactName: appxBundleSigned
|
|
||||||
|
|
||||||
- task: CopyFiles@2
|
|
||||||
displayName: Copy signed AppxBundle to vpack staging folder
|
|
||||||
inputs:
|
|
||||||
sourceFolder: $(Build.ArtifactStagingDirectory)\appxBundleSigned
|
|
||||||
contents: Microsoft.WindowsCalculator_8wekyb3d8bbwe.appxbundle
|
|
||||||
targetFolder: $(Build.ArtifactStagingDirectory)\vpack\appxBundle
|
|
||||||
|
|
||||||
- task: PkgESVPack@10
|
|
||||||
displayName: Create and push vpack for app
|
|
||||||
env:
|
|
||||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
|
||||||
inputs:
|
|
||||||
sourceDirectory: $(Build.ArtifactStagingDirectory)\vpack\appxBundle
|
|
||||||
description: VPack for the Calculator Application
|
|
||||||
pushPkgName: calculator.app
|
|
||||||
version: $(versionMajor).$(versionMinor).$(versionBuild)
|
|
||||||
owner: paxeeapps
|
|
||||||
provData: true
|
|
||||||
|
|
||||||
|
|
||||||
- task: PublishBuildArtifacts@1
|
|
||||||
displayName: Publish vpack\app artifact with vpack manifest
|
|
||||||
inputs:
|
|
||||||
pathtoPublish: $(XES_VPACKMANIFESTDIRECTORY)\$(XES_VPACKMANIFESTNAME)
|
|
||||||
artifactName: vpack\app
|
|
||||||
|
|
||||||
- task: UniversalPackages@0
|
|
||||||
displayName: Download internals package
|
|
||||||
inputs:
|
|
||||||
command: download
|
|
||||||
downloadDirectory: $(Build.SourcesDirectory)
|
|
||||||
vstsFeed: WindowsInboxApps
|
|
||||||
vstsFeedPackage: calculator-internals
|
|
||||||
vstsPackageVersion: 0.0.66
|
|
||||||
|
|
||||||
- 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: $(SBMediaRootPath)/$(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)/appxBundleSigned
|
|
||||||
contents: Microsoft.WindowsCalculator_8wekyb3d8bbwe.appxbundle
|
|
||||||
pdpPath: '$(Build.SourcesDirectory)\PDP'
|
|
||||||
pdpInclude: PDP.xml
|
|
||||||
pdpMediaPath: '$(SBMediaRootPath)'
|
|
||||||
outSBPackagePath: '$(SBPackagePath)'
|
|
||||||
outSBName: SBCalculator
|
|
||||||
|
|
||||||
- task: PublishBuildArtifacts@1
|
|
||||||
displayName: Publish StoreBroker Payload artifact
|
|
||||||
inputs:
|
|
||||||
pathtoPublish: '$(SBPackagePath)'
|
|
||||||
artifactName: storeBrokerPayload
|
|
||||||
|
|
||||||
- task: MS-RDX-MRO.windows-store-publish-dev.flight-task.store-flight@2
|
|
||||||
displayName: 'Flight StoreBroker Payload to team ring'
|
|
||||||
name: StoreBrokerFlight
|
|
||||||
inputs:
|
|
||||||
serviceEndpoint: Calculator StoreBroker Connection
|
|
||||||
appId: '$(AppId)'
|
|
||||||
flightId: '$(FlightId)'
|
|
||||||
inputMethod: JsonAndZip
|
|
||||||
jsonPath: '$(SBPackagePath)\SBCalculator.json'
|
|
||||||
zipPath: '$(SBPackagePath)\SBCalculator.zip'
|
|
||||||
force: true
|
|
||||||
skipPolling: true
|
|
||||||
targetPublishMode: Immediate
|
|
||||||
logPath: '$(SBLogPath)'
|
|
||||||
deletePackages: true
|
|
||||||
numberOfPackagesToKeep: 0
|
|
||||||
|
|
||||||
- task: PkgESStoreBrokerAeroUpload@10
|
|
||||||
displayName: Upload to Aero flighting dashboard
|
|
||||||
env:
|
|
||||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
|
||||||
inputs:
|
|
||||||
ProductId: '$(ProductId)'
|
|
||||||
FlightId: '$(FlightId)'
|
|
||||||
SubmissionId: '$(StoreBrokerFlight.WS_SubmissionId)'
|
|
||||||
SubmissionDataPath: '$(SBPackagePath)\SBCalculator.json'
|
|
||||||
PackagePath: '$(SBPackagePath)\SBCalculator.zip'
|
|
||||||
AeroEnvironment: Production
|
|
89
build/pipelines/templates/release-store.yaml
Normal file
89
build/pipelines/templates/release-store.yaml
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
# This template contains jobs to release the app to the Store.
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
- job: ReleaseStore
|
||||||
|
dependsOn: Package
|
||||||
|
pool:
|
||||||
|
vmImage: windows-2019
|
||||||
|
variables:
|
||||||
|
skipComponentGovernanceDetection: true
|
||||||
|
StoreBrokerPackagePath: $(Build.ArtifactStagingDirectory)\storeBrokerPayload
|
||||||
|
StoreBrokerLogPath: $(StoreBrokerPackagePath)\StoreBroker.log
|
||||||
|
FlightId: 161f0975-cb5f-475b-8ef6-26383c37621f
|
||||||
|
AppId: 9WZDNCRFHVN5
|
||||||
|
ProductId: 00009007199266248474
|
||||||
|
steps:
|
||||||
|
- checkout: none
|
||||||
|
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download storeBrokerPayload artifact
|
||||||
|
inputs:
|
||||||
|
artifactName: storeBrokerPayload
|
||||||
|
|
||||||
|
- task: MS-RDX-MRO.windows-store-publish-dev.flight-task.store-flight@2
|
||||||
|
displayName: Flight StoreBroker Payload to team ring
|
||||||
|
name: StoreBrokerFlight
|
||||||
|
inputs:
|
||||||
|
serviceEndpoint: Calculator StoreBroker Connection
|
||||||
|
appId: $(AppId)
|
||||||
|
flightId: $(FlightId)
|
||||||
|
inputMethod: JsonAndZip
|
||||||
|
jsonPath: $(StoreBrokerPackagePath)\SBCalculator.json
|
||||||
|
zipPath: $(StoreBrokerPackagePath)\SBCalculator.zip
|
||||||
|
force: true
|
||||||
|
skipPolling: true
|
||||||
|
targetPublishMode: Immediate
|
||||||
|
logPath: $(StoreBrokerLogPath)
|
||||||
|
deletePackages: true
|
||||||
|
numberOfPackagesToKeep: 0
|
||||||
|
|
||||||
|
# TODO when Aero makes a new task available which does not depend on on-prem Package ES, remove this job
|
||||||
|
# and add the Aero upload task to the "ReleaseStore" job.
|
||||||
|
- job: ReleaseAero
|
||||||
|
dependsOn: ReleaseStore
|
||||||
|
pool:
|
||||||
|
name: Package ES Standard Build
|
||||||
|
workspace:
|
||||||
|
clean: outputs
|
||||||
|
variables:
|
||||||
|
skipComponentGovernanceDetection: true
|
||||||
|
StoreBrokerPackagePath: $(Build.ArtifactStagingDirectory)\storeBrokerPayload
|
||||||
|
FlightId: 161f0975-cb5f-475b-8ef6-26383c37621f
|
||||||
|
AppId: 9WZDNCRFHVN5
|
||||||
|
ProductId: 00009007199266248474
|
||||||
|
SubmissionId: $[ dependencies.ReleaseStore.outputs['StoreBrokerFlight.WS_SubmissionId'] ]
|
||||||
|
steps:
|
||||||
|
- checkout: none
|
||||||
|
|
||||||
|
# This must be the first task in the job definition, since it modifies the build environment
|
||||||
|
# in ways other tasks would not expect (for example, it clears the artifacts directory).
|
||||||
|
- task: PkgESSetupBuild@10
|
||||||
|
displayName: Initialize Package ES
|
||||||
|
inputs:
|
||||||
|
productName: Calculator
|
||||||
|
disableWorkspace: true
|
||||||
|
useDfs: false
|
||||||
|
env:
|
||||||
|
XES_DISABLEPROV: true
|
||||||
|
|
||||||
|
- task: NuGetToolInstaller@1
|
||||||
|
displayName: Use NuGet 5.x
|
||||||
|
inputs:
|
||||||
|
versionSpec: 5.x
|
||||||
|
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download storeBrokerPayload artifact
|
||||||
|
inputs:
|
||||||
|
artifactName: storeBrokerPayload
|
||||||
|
|
||||||
|
- task: PkgESStoreBrokerAeroUpload@10
|
||||||
|
displayName: Upload to Aero flighting dashboard
|
||||||
|
env:
|
||||||
|
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
||||||
|
inputs:
|
||||||
|
ProductId: '$(ProductId)'
|
||||||
|
FlightId: '$(FlightId)'
|
||||||
|
SubmissionId: '$(SubmissionId)'
|
||||||
|
SubmissionDataPath: '$(StoreBrokerPackagePath)\SBCalculator.json'
|
||||||
|
PackagePath: '$(StoreBrokerPackagePath)\SBCalculator.zip'
|
||||||
|
AeroEnvironment: Production
|
42
build/pipelines/templates/release-vpack.yaml
Normal file
42
build/pipelines/templates/release-vpack.yaml
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
# This template contains a job to create a VPack. The VPack is used to preinstall the app in a
|
||||||
|
# Windows OS build.
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
- job: ReleaseVPack
|
||||||
|
dependsOn: Package
|
||||||
|
pool:
|
||||||
|
vmImage: windows-2019
|
||||||
|
variables:
|
||||||
|
skipComponentGovernanceDetection: true
|
||||||
|
steps:
|
||||||
|
- checkout: none
|
||||||
|
|
||||||
|
- task: DownloadBuildArtifacts@0
|
||||||
|
displayName: Download appxBundleSigned artifact
|
||||||
|
inputs:
|
||||||
|
artifactName: appxBundleSigned
|
||||||
|
|
||||||
|
- task: CopyFiles@2
|
||||||
|
displayName: Copy signed AppxBundle to vpack staging folder
|
||||||
|
inputs:
|
||||||
|
sourceFolder: $(Build.ArtifactStagingDirectory)\appxBundleSigned
|
||||||
|
contents: Microsoft.WindowsCalculator_8wekyb3d8bbwe.appxbundle
|
||||||
|
targetFolder: $(Build.ArtifactStagingDirectory)\vpack\appxBundle
|
||||||
|
|
||||||
|
- task: PkgESVPack@12
|
||||||
|
displayName: Create and push vpack for app
|
||||||
|
env:
|
||||||
|
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
||||||
|
inputs:
|
||||||
|
sourceDirectory: $(Build.ArtifactStagingDirectory)\vpack\appxBundle
|
||||||
|
description: VPack for the Calculator Application
|
||||||
|
pushPkgName: calculator.app
|
||||||
|
version: $(versionMajor).$(versionMinor).$(versionBuild)
|
||||||
|
owner: paxeeapps
|
||||||
|
provData: true
|
||||||
|
|
||||||
|
- task: PublishBuildArtifacts@1
|
||||||
|
displayName: Publish vpack\app artifact with vpack manifest
|
||||||
|
inputs:
|
||||||
|
pathtoPublish: $(XES_VPACKMANIFESTDIRECTORY)\$(XES_VPACKMANIFESTNAME)
|
||||||
|
artifactName: vpackManifest
|
Loading…
Reference in New Issue
Block a user