PowerShell/tools/releaseBuild/azureDevOps/releaseBuild.yml
Travis Plunk a00741e6c7
Sign individual files in pkg (#13392)
Co-authored-by: Aditya Patwardhan <adityap@microsoft.com>
2020-08-11 14:01:47 -07:00

165 lines
4.3 KiB
YAML

name: UnifiedPackageBuild-$(Build.BuildId)
trigger:
branches:
include:
- master
- release*
pr:
branches:
include:
- master
- release*
variables:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
POWERSHELL_TELEMETRY_OPTOUT: 1
# Set AzDevOps Agent to clean the machine after the end of the build
resources:
- repo: self
clean: true
stages:
- stage: prep
jobs:
- template: templates/checkAzureContainer.yml
- stage: macos
dependsOn: ['prep']
jobs:
- template: templates/mac.yml
- template: templates/mac-file-signing.yml
parameters:
parentJob: build_macOS
- template: templates/mac-package-build.yml
parameters:
parentJob: MacFileSigningJob
- template: templates/mac-package-signing.yml
parameters:
parentJob: package_macOS
- stage: linux
dependsOn: ['prep']
jobs:
- template: templates/linux.yml
parameters:
buildName: deb
- template: templates/linux.yml
parameters:
buildName: rpm
uploadDisplayName: Upload and Sign
- template: templates/linux.yml
parameters:
buildName: fxdependent
parentJob: build_deb
- template: templates/linux.yml
parameters:
buildName: alpine
- stage: windows
dependsOn: ['prep']
jobs:
- template: templates/windows-hosted-build.yml
parameters:
Architecture: x64
- template: templates/windows-hosted-build.yml
parameters:
Architecture: x86
- template: templates/windows-hosted-build.yml
parameters:
Architecture: arm
- template: templates/windows-hosted-build.yml
parameters:
Architecture: arm64
- template: templates/windows-hosted-build.yml
parameters:
Architecture: fxdependent
- template: templates/windows-hosted-build.yml
parameters:
Architecture: fxdependentWinDesktop
- template: templates/windows-packaging.yml
parameters:
Architecture: x64
parentJob: build_windows_x64
- template: templates/windows-packaging.yml
parameters:
Architecture: x86
parentJob: build_windows_x86
- template: templates/windows-packaging.yml
parameters:
Architecture: arm
parentJob: build_windows_arm
- template: templates/windows-packaging.yml
parameters:
Architecture: arm64
parentJob: build_windows_arm64
- template: templates/windows-packaging.yml
parameters:
Architecture: fxdependent
parentJob: build_windows_fxdependent
- template: templates/windows-packaging.yml
parameters:
Architecture: fxdependentWinDesktop
parentJob: build_windows_fxdependentWinDesktop
- template: templates/windows-package-signing.yml
parameters:
parentJobs:
- sign_windows_x64
- sign_windows_x86
- sign_windows_arm
- sign_windows_arm64
- sign_windows_fxdependent
- sign_windows_fxdependentWinDesktop
- stage: compliance
dependsOn: ['windows']
jobs:
- template: templates/compliance.yml
- stage: nuget_and_json
dependsOn: ['windows','linux','macOS']
jobs:
- template: templates/nuget.yml
- template: templates/json.yml
- stage: test_and_release_artifacts
dependsOn: ['prep']
jobs:
- template: templates/testartifacts.yml
- job: release_json
displayName: Create and Upload release.json
pool:
vmImage: 'windows-latest'
steps:
- template: templates/SetVersionVariables.yml
parameters:
ReleaseTagVar: $(ReleaseTagVar)
- powershell: |
$metadata = Get-Content '$(Build.SourcesDirectory)/tools/metadata.json' -Raw | ConvertFrom-Json
$LTS = $metadata.LTSRelease
@{ ReleaseVersion = "$(Version)"; LTSRelease = $LTS } | ConvertTo-Json | Out-File "$(Build.StagingDirectory)\release.json"
Get-Content "$(Build.StagingDirectory)\release.json"
Write-Host "##vso[artifact.upload containerfolder=metadata;artifactname=metadata]$(Build.StagingDirectory)\release.json"
displayName: Create and upload release.json file to build artifact