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