PublishSymbols@2 – Úloha indexování zdrojů a symbolů publikování v2
Pomocí této úlohy můžete indexovat zdrojový kód a publikovat symboly do sdílené složky nebo na server symbolů Azure Artifacts.
Indexování zdrojového kódu umožňuje používat soubory symbolů k ladění aplikace na jiném počítači, než je ten, který jste použili k sestavení aplikace. Můžete například ladit aplikaci vytvořenou agentem sestavení z vývojového počítače, který nemá zdrojový kód.
Servery symbolů umožňují ladicímu programu automaticky načítat správné soubory symbolů bez znalosti názvů produktů, čísel buildů nebo názvů balíčků.
Syntax
# Index sources and publish symbols v2
# Index your source code and publish symbols to a file share or Azure Artifacts symbol server.
- task: PublishSymbols@2
inputs:
#SymbolsFolder: '$(Build.SourcesDirectory)' # string. Path to symbols folder. Default: $(Build.SourcesDirectory).
SearchPattern: '**/bin/**/*.pdb' # string. Required. Search pattern. Default: **/bin/**/*.pdb.
#IndexSources: true # boolean. Index sources. Default: true.
#PublishSymbols: true # boolean. Publish symbols. Default: true.
SymbolServerType: # 'TeamServices' | 'FileShare'. Required when PublishSymbols = true. Symbol server type.
#SymbolsPath: # string. Optional. Use when PublishSymbols = true && SymbolServerType = FileShare. Path to publish symbols.
#CompressSymbols: false # boolean. Optional. Use when SymbolServerType = FileShare. Compress symbols. Default: false.
#SymbolExpirationInDays: '36530' # string. Optional. Use when PublishSymbols = true && SymbolServerType = TeamServices. Symbol Expiration (in days). Default: 36530.
# Advanced
#IndexableFileFormats: 'Default' # 'Default' | 'Pdb' | 'SourceMap' | 'All'. Optional. Use when PublishSymbols = true && SymbolServerType = TeamServices. Symbol file formats to publish. Default: Default.
#DetailedLog: true # boolean. Verbose logging. Default: true.
#TreatNotIndexedAsWarning: false # boolean. Warn if not indexed. Default: false.
#UseNetCoreClientTool: false # boolean. Use NetCore client tool. Default: false.
#SymbolsMaximumWaitTime: # string. Max wait time (min).
#SymbolsProduct: # string. Product.
#SymbolsVersion: # string. Version.
#SymbolsArtifactName: 'Symbols_$(BuildConfiguration)' # string. Artifact name. Default: Symbols_$(BuildConfiguration).
# Index sources and publish symbols v2
# Index your source code and publish symbols to a file share or Azure Artifacts symbol server.
- task: PublishSymbols@2
inputs:
#SymbolsFolder: '$(Build.SourcesDirectory)' # string. Path to symbols folder. Default: $(Build.SourcesDirectory).
SearchPattern: '**/bin/**/*.pdb' # string. Required. Search pattern. Default: **/bin/**/*.pdb.
#IndexSources: true # boolean. Index sources. Default: true.
#PublishSymbols: true # boolean. Publish symbols. Default: true.
SymbolServerType: # 'TeamServices' | 'FileShare'. Required when PublishSymbols = true. Symbol server type.
#SymbolsPath: # string. Optional. Use when PublishSymbols = true && SymbolServerType = FileShare. Path to publish symbols.
#CompressSymbols: false # boolean. Optional. Use when SymbolServerType = FileShare. Compress symbols. Default: false.
# Advanced
#DetailedLog: true # boolean. Verbose logging. Default: true.
#TreatNotIndexedAsWarning: false # boolean. Warn if not indexed. Default: false.
#SymbolsMaximumWaitTime: # string. Max wait time (min).
#SymbolsProduct: # string. Product.
#SymbolsVersion: # string. Version.
#SymbolsArtifactName: 'Symbols_$(BuildConfiguration)' # string. Artifact name. Default: Symbols_$(BuildConfiguration).
# Index sources and publish symbols v2
# Index your source code and publish symbols to a file share or Azure Artifacts Symbol Server.
- task: PublishSymbols@2
inputs:
#SymbolsFolder: '$(Build.SourcesDirectory)' # string. Path to symbols folder. Default: $(Build.SourcesDirectory).
SearchPattern: '**/bin/**/*.pdb' # string. Required. Search pattern. Default: **/bin/**/*.pdb.
#IndexSources: true # boolean. Index sources. Default: true.
#PublishSymbols: true # boolean. Publish symbols. Default: true.
SymbolServerType: # 'TeamServices' | 'FileShare'. Required when PublishSymbols = true. Symbol server type.
#SymbolsPath: # string. Optional. Use when PublishSymbols = true && SymbolServerType = FileShare. Path to publish symbols.
#CompressSymbols: false # boolean. Optional. Use when SymbolServerType = FileShare. Compress symbols. Default: false.
# Advanced
#DetailedLog: true # boolean. Verbose logging. Default: true.
#TreatNotIndexedAsWarning: false # boolean. Warn if not indexed. Default: false.
#SymbolsMaximumWaitTime: # string. Max wait time (min).
#SymbolsProduct: # string. Product.
#SymbolsVersion: # string. Version.
#SymbolsArtifactName: 'Symbols_$(BuildConfiguration)' # string. Artifact name. Default: Symbols_$(BuildConfiguration).
Vstupy
SymbolsFolder
- Cesta ke složce symbolů
string
. Výchozí hodnota: $(Build.SourcesDirectory)
.
Určuje cestu ke složce, která se hledá se soubory symbolů. Výchozí formát je $(Build.SourcesDirectory)
. V opačném případě zadejte kořenovou cestu, například $(Build.BinariesDirectory)/MyProject
.
Poznámka
Cesty UNC se nepodporují, pokud jako typ serveru vyberete server symbolů Azure Artifacts.
SearchPattern
- Search vzor
string
. Povinná hodnota. Výchozí hodnota: **/bin/**/*.pdb
.
Určuje vzor použitý ke zjištění souborů PDB, které se mají publikovat. Další informace najdete v tématu Referenční informace o vzorech porovnávání souborů .
IndexSources
- Zdroje indexů
boolean
. Výchozí hodnota: true
.
Určuje, zda se mají do souborů PDB vložit informace o zdrojovém serveru. Tato možnost je podporovaná jenom u agentů systému Windows.
PublishSymbols
- Publikovat symboly
boolean
. Výchozí hodnota: true
.
Určuje, zda se mají publikovat soubory symbolů.
SymbolServerType
- Typ serveru se symboly
string
. Vyžaduje se, když PublishSymbols = true
. Povolené hodnoty: TeamServices
(Server symbolů v této organizaci nebo kolekci (vyžaduje Azure Artifacts)), FileShare
(sdílená složka).
Určuje, kde se mají publikovat symboly. Symboly publikované na serveru symbolů Azure Artifacts jsou přístupné všem uživatelům s přístupem k organizaci nebo kolekci. Azure DevOps Server podporuje jenom tuto File share
možnost. Projděte si pokyny k publikování symbolů pro ladění pro použití serveru symbolů v Azure Artifacts.
SymbolsPath
- Cesta k publikování symbolů
string
. Nepovinný parametr. Použijte, když PublishSymbols = true && SymbolServerType = FileShare
.
Určuje sdílenou složku, která je hostitelem symbolů. Tato hodnota se použije ve volání symstore.exe add
jako /s
parametr.
Příprava úložiště symbolů SymStore:
- Nastavte složku na serveru pro sdílení souborů pro ukládání symbolů. Můžete například nastavit
\fabrikam-share\symbols
. - Udělte účtu služby agenta sestavení oprávnění k úplnému řízení.
Pokud tento argument ponecháte prázdný, budou vaše symboly indexovány ze zdroje, ale nebudou publikovány. Symboly můžete také ukládat s kapkami. Viz Publikování artefaktů sestavení.
CompressSymbols
- Komprese symbolů
boolean
. Nepovinný parametr. Použijte, když SymbolServerType = FileShare
. Výchozí hodnota: false
.
Komprimuje symboly při publikování do sdílené složky.
SymbolExpirationInDays
- Vypršení platnosti symbolu (ve dnech)
string
. Nepovinný parametr. Použijte, když PublishSymbols = true && SymbolServerType = TeamServices
. Výchozí hodnota: 36530
.
Určuje počet dnů, po které se mají symboly zachovat.
IndexableFileFormats
- Formáty souborů symbolů k publikování
string
. Nepovinný parametr. Použijte, když PublishSymbols = true && SymbolServerType = TeamServices
. Povolené hodnoty: Default
(Výchozí sada symbolů k nahrání), Pdb
(pouze symboly založené na pdb windows a spravované přenosné pdb SourceMap
) (Pouze javascriptové symboly SourceMap (*.js.map)) All
(Všechny podporované formáty symbolů). Výchozí hodnota: Default
.
Určuje, které formáty ladění se mají publikovat na server symbolů.
DetailedLog
- Podrobné protokolování
boolean
. Výchozí hodnota: true
.
Určuje podrobné protokolování.
TreatNotIndexedAsWarning
- Upozornění, pokud není indexováno
boolean
. Výchozí hodnota: false
.
Určuje, zda se má zobrazit upozornění, pokud nejsou zdroje indexovány pro soubor PDB. V opačném případě se zprávy protokolují jako normální výstup.
UseNetCoreClientTool
- Použití klientského nástroje NetCore
boolean
. Výchozí hodnota: false
.
Určuje, jestli se má použít verze nástroje pro nahrávání symbolů, která podporuje soubory TRPASLÍK a ELF. Tato možnost je důležitá jenom u agentů Windows. U jiných agentů než Windows se vždy použije verze nástroje pro nahrávání symbolů, který podporuje soubory TRPASLÍK a ELF.
SymbolsMaximumWaitTime
- Maximální čekací doba (min)
string
.
Určuje počet minut čekání před selháním této úlohy.
SymbolsProduct
- Produktu
string
.
Určuje parametr produktu pro symstore.exe
. Výchozí formát je $(Build.DefinitionName)
.
SymbolsVersion
- Verze
string
.
Určuje parametr version pro symstore.exe
. Výchozí formát je $(Build.BuildNumber)
.
SymbolsArtifactName
- Název artefaktu
string
. Výchozí hodnota: Symbols_$(BuildConfiguration)
.
Určuje název artefaktu, který se má použít pro artefakt symbolů. Tato možnost by se měla používat pouze se serverem typu symbolu FileShare. Výchozí formát je Symbols_$(BuildConfiguration)
.
Možnosti ovládání úloh
Všechny úlohy mají kromě vstupů také možnosti ovládání. Další informace najdete v tématu Možnosti ovládacího prvku a běžné vlastnosti úlohy.
Výstupní proměnné
Žádné
Poznámky
Pomocí této úlohy můžete indexovat zdrojový kód a publikovat symboly do sdílené složky nebo na server symbolů Azure Artifacts.
Indexování zdrojového kódu umožňuje používat soubory symbolů k ladění aplikace na jiném počítači, než je ten, který jste použili k sestavení aplikace. Můžete například ladit aplikaci vytvořenou agentem sestavení z vývojového počítače, který nemá zdrojový kód.
Servery symbolů umožňují ladicímu programu automaticky načítat správné soubory symbolů bez znalosti názvů produktů, čísel buildů nebo názvů balíčků.
Důležité
Pokud chcete odstranit symboly publikované pomocí úlohy Zdroje indexů & Publikovat symboly , musíte nejprve odstranit sestavení, které tyto symboly vygenerovalo. Toho lze dosáhnout pomocí zásad uchovávání informací nebo ručním odstraněním spuštění.
Jak funguje indexování?
Když zvolíte indexování zdrojů, vloží se do souborů PDB další oddíl. Soubory PDB obvykle obsahují pouze odkazy na cesty k místním zdrojovým souborům, například C:\BuildAgent_work\1\src\MyApp\Program.cs. Další oddíl vložený do souboru PDB obsahuje pokyny k mapování pro ladicí programy. Informace o mapování určují, jak načíst položku serveru odpovídající každé místní cestě.
Ladicí program sady Visual Studio použije informace mapování k načtení zdrojového souboru ze serveru. Skutečný příkaz pro načtení zdrojového souboru je součástí informací o mapování. Příklad:
tf.exe git view /collection:http://SERVER:8080/tfs/DefaultCollection /teamproject:"93fc2e4d-0f0f-4e40-9825-01326191395d" /repository:"647ed0e6-43d2-4e3d-b8bf-2885476e9c44" /commitId:3a9910862e22f442cd56ff280b43dd544d1ee8c9 /path:"/MyApp/Program.cs" /output:"C:\Users\username\AppData\Local\SOURCE~1\TFS_COMMIT\3a991086\MyApp\Program.cs" /applyfilters
Můžu použít indexování zdroje na přenosném souboru PDB vytvořeném ze sestavení .NET Core?
Ne, ale můžete místo toho použít Source Link.
Jak dlouho se symboly uchovávají?
Symboly jsou přidružené k sestavení, které je publikováno do Azure Pipelines a jsou přidružené k sestavení. Při ručním odstranění sestavení nebo pomocí zásad uchovávání informací se odstraní i symboly. Pokud chcete symboly zachovat po neomezenou dobu, označte sestavení jako Zachovat po neomezenou dobu.
Požadavky
Požadavek | Popis |
---|---|
Typy kanálů | YAML, klasický build |
Běží na | Agent, DeploymentGroup |
Požadavky | Žádné |
Možnosti | Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze. |
Omezení příkazů | Všechny |
Nastavitelné proměnné | Všechny |
Verze agenta | 2.144.0 nebo vyšší |
Kategorie úloh | Sestavení |
Požadavek | Popis |
---|---|
Typy kanálů | YAML, klasický build |
Běží na | Agent, DeploymentGroup |
Požadavky | Žádné |
Možnosti | Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze. |
Omezení příkazů | Všechny |
Nastavitelné proměnné | Všechny |
Verze agenta | 1.95.0 nebo vyšší |
Kategorie úloh | Sestavení |