172 lines
4.5 KiB
YAML
172 lines
4.5 KiB
YAML
name: UnifiedPackageBuild-$(Build.BuildId)
|
|
trigger:
|
|
branches:
|
|
include:
|
|
- master
|
|
- release*
|
|
pr:
|
|
branches:
|
|
include:
|
|
- master
|
|
- release*
|
|
|
|
resources:
|
|
repositories:
|
|
- repository: ComplianceRepo
|
|
type: github
|
|
endpoint: ComplianceGHRepo
|
|
name: PowerShell/compliance
|
|
ref: master
|
|
|
|
variables:
|
|
- name: DOTNET_CLI_TELEMETRY_OPTOUT
|
|
value: 1
|
|
- name: POWERSHELL_TELEMETRY_OPTOUT
|
|
value: 1
|
|
|
|
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:
|
|
- checkout: self
|
|
clean: true
|
|
- 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
|