mirror of
https://github.com/microsoft/terminal.git
synced 2026-04-06 14:19:45 +00:00
This pipeline does everything the existing release pipeline does, except it does it using the OneBranch official templates. Most of our existing build infrastructure has been reused, with the following changes: - We are no longer using `job-submit-windows-vpack`, as OneBranch does this for us. - `job-merge-msix-into-bundle` now supports afterBuildSteps, which we use to stage the msixbundle into the right place for the vpack - `job-build-project` supports deleting all non-signed files (which the OneBranch post-build validation requires) - `job-build-project` now deletes `console.dll`, which is unused in any of our builds, because XFGCheck blows up on it for some reason on x86 - `job-publish-symbols` now supports two different types of PAT ingestion - I have pulled out the NuGet filename variables into a shared variables template I have also introduced a TSA config (which files bugs on us for binary analysis failures as well as using the word 'sucks' and stuff.) I have also baselined a number of control flow guard/binary analysis failures.
98 lines
3.4 KiB
YAML
98 lines
3.4 KiB
YAML
parameters:
|
|
- name: includePublicSymbolServer
|
|
type: boolean
|
|
default: false
|
|
- name: pool
|
|
type: object
|
|
default: []
|
|
- name: dependsOn
|
|
type: object
|
|
default: null
|
|
- name: artifactStem
|
|
type: string
|
|
default: ''
|
|
- name: jobName
|
|
type: string
|
|
default: PublishSymbols
|
|
- name: symbolExpiryTime
|
|
type: string
|
|
default: 36530 # This is the default from PublishSymbols@2
|
|
- name: variables
|
|
type: object
|
|
default: {}
|
|
- name: symbolPatGoesInTaskInputs
|
|
type: boolean
|
|
default: false
|
|
|
|
jobs:
|
|
- job: ${{ parameters.jobName }}
|
|
${{ if ne(length(parameters.pool), 0) }}:
|
|
pool: ${{ parameters.pool }}
|
|
${{ if eq(parameters.includePublicSymbolServer, true) }}:
|
|
displayName: Publish Symbols to Internal and MSDL
|
|
${{ else }}:
|
|
displayName: Publish Symbols Internally
|
|
dependsOn: ${{ parameters.dependsOn }}
|
|
variables:
|
|
${{ insert }}: ${{ parameters.variables }}
|
|
steps:
|
|
- checkout: self
|
|
clean: true
|
|
fetchDepth: 1
|
|
fetchTags: false # Tags still result in depth > 1 fetch; we don't need them here
|
|
submodules: true
|
|
persistCredentials: True
|
|
|
|
- task: PkgESSetupBuild@12
|
|
displayName: Package ES - Setup Build
|
|
inputs:
|
|
disableOutputRedirect: true
|
|
|
|
- task: DownloadPipelineArtifact@2
|
|
displayName: Download all PDBs from all prior build phases
|
|
inputs:
|
|
itemPattern: '**/*.pdb'
|
|
targetPath: '$(Build.SourcesDirectory)/bin'
|
|
|
|
- task: PublishSymbols@2
|
|
displayName: Publish Symbols (to current Azure DevOps tenant)
|
|
continueOnError: True
|
|
inputs:
|
|
SymbolsFolder: '$(Build.SourcesDirectory)/bin'
|
|
SearchPattern: '**/*.pdb'
|
|
IndexSources: false
|
|
DetailedLog: true
|
|
SymbolsMaximumWaitTime: 30
|
|
SymbolServerType: 'TeamServices'
|
|
SymbolsProduct: 'Windows Terminal Converged Symbols'
|
|
SymbolsVersion: '$(XES_APPXMANIFESTVERSION)'
|
|
SymbolExpirationInDays: ${{ parameters.symbolExpiryTime }}
|
|
env:
|
|
LIB: $(Build.SourcesDirectory)
|
|
|
|
- ${{ if eq(parameters.includePublicSymbolServer, true) }}:
|
|
- task: PublishSymbols@2
|
|
displayName: 'Publish symbols to MSDL'
|
|
continueOnError: True
|
|
inputs:
|
|
SymbolsFolder: '$(Build.SourcesDirectory)/bin'
|
|
SearchPattern: '**/*.pdb'
|
|
IndexSources: false
|
|
DetailedLog: true
|
|
SymbolsMaximumWaitTime: 30
|
|
SymbolServerType: 'TeamServices'
|
|
SymbolsProduct: 'Windows Terminal Converged Symbols'
|
|
SymbolsVersion: '$(XES_APPXMANIFESTVERSION)'
|
|
SymbolExpirationInDays: ${{ parameters.symbolExpiryTime }}
|
|
${{ if eq(parameters.symbolPatGoesInTaskInputs, true) }}:
|
|
Pat: $(ADO_microsoftpublicsymbols_PAT)
|
|
# The ADO task does not support indexing of GitHub sources.
|
|
# There is a bug which causes this task to fail if LIB includes an inaccessible path (even though it does not depend on it).
|
|
# To work around this issue, we just force LIB to be any dir that we know exists.
|
|
# Copied from https://github.com/microsoft/icu/blob/f869c214adc87415dfe751d81f42f1bca55dcf5f/build/azure-nuget.yml#L564-L583
|
|
env:
|
|
LIB: $(Build.SourcesDirectory)
|
|
ArtifactServices_Symbol_AccountName: microsoftpublicsymbols
|
|
${{ if ne(parameters.symbolPatGoesInTaskInputs, true) }}:
|
|
ArtifactServices_Symbol_PAT: $(ADO_microsoftpublicsymbols_PAT)
|