Sestavování, testování a nasazování aplikací .NET Core
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Pomocí kanálu Azure můžete automaticky sestavovat, testovat a nasazovat projekty .NET Core. V tomto článku se dozvíte, jak provádět následující úlohy:
- Nastavte prostředí sestavení pomocí agentů v místním prostředí .
- Obnovte závislosti, sestavte projekt a otestujte pomocí úlohy .NET Core (DotNetCoreCLI@2) nebo skriptu.
- Otestujte kód a pomocí úlohy pokrytí publikujte kód k publikování výsledků pokrytí kódu.
- Zabalte a doručte výstup sestavení do:
- váš kanál.
- informační kanál NuGet.
- soubor
.zip
pro nasazení webové aplikace do Azure.
- Nastavte si prostředí sestavení pomocí agentů hostovaných Microsoftem nebo agenty v místním prostředí .
- Obnovte závislosti, sestavte projekt a otestujte pomocí úlohy .NET Core (DotNetCoreCLI@2) nebo skriptu.
- Otestujte kód a pomocí úlohy pokrytí publikujte kód k publikování výsledků pokrytí kódu.
- Zabalte a doručte výstup sestavení do:
- váš kanál.
- informační kanál NuGet.
- soubor
.zip
pro nasazení webové aplikace do Azure.
Poznámka:
Nápovědu k projektům rozhraní .NET Framework najdete v tématu Vytváření ASP.NET aplikací pomocí rozhraní .NET Framework.
Požadavky
- Účet GitHubu, kde můžete vytvořit úložiště. Vytvořte si ho zdarma.
- Organizace a projekt Azure DevOps Vytvořte si ho zdarma.
- Možnost spouštět kanály na agentech hostovaných Microsoftem Můžete si buď koupit paralelní úlohu , nebo si můžete vyžádat úroveň Free.
- Účet GitHubu, kde můžete vytvořit úložiště. Vytvořte si ho zdarma.
- Kolekce Azure DevOps.
- Možnost spouštět kanály v místním agentovi s nainstalovaným a spuštěným Dockerem na hostiteli agenta.
Vytvoření prvního kanálu
Začínáte se službou Azure Pipelines? Pokud ano, doporučujeme nejprve vyzkoušet následující část.
Vytvoření projektu .NET
Pokud nemáte projekt .NET pro práci, vytvořte v místním systému nový projekt. Začněte instalací nejnovější sady .NET 8.0 SDK .
Otevřete okno terminálu.
Vytvořte adresář projektu a přejděte na něj.
Vytvořte novou webovou aplikaci .NET 8.
dotnet new webapp -f net8.0
Ve stejné relaci terminálu spusťte aplikaci místně pomocí
dotnet run
příkazu z adresáře projektu.dotnet run
Po spuštění aplikace ji stisknutím kláves Ctrl+C vypněte.
Vytvoření úložiště Git a jeho připojení k GitHubu
Vytvoření projektu DevOps
Přihlaste se ke službě Azure Pipelines. Po přihlášení přejde váš prohlížeč na https://dev.azure.com/my-organization-name
řídicí panel Azure DevOps a zobrazí ho.
- V prohlížeči přejděte na dev.azure.com a přihlaste se.
- Vyberte svoji organizaci.
- Pokud vytváříte první projekt v organizaci, vytvořte nový projekt výběrem možnosti Nový projekt nebo Vytvořit projekt .
- Zadejte název projektu.
- Vyberte viditelnost projektu.
- Vyberte Vytvořit.
- V prohlížeči přejděte na Azure DevOps Server.
- Vyberte kolekci.
- Vytvořte nový projekt výběrem možnosti Nový projekt nebo Vytvořit projekt , pokud vytváříte první projekt v kolekci.
- Zadejte název projektu.
- Vyberte viditelnost projektu.
- Vyberte Vytvořit.
- V okně prohlížeče se přihlaste k Azure DevOps Serveru a vyberte kolekci.
- Vyberte Nový projekt.
- Zadejte název projektu.
- Volitelně můžete zadat popis.
- Vyberte Vytvořit.
Nastavení prostředí sestavení
Vaše sestavení běží na agentech v místním prostředí. Ujistěte se, že na agentech máte nainstalovanou potřebnou verzi sady .NET Core SDK a modulu runtime. Projekty .NET Core můžete sestavit pomocí sady .NET Core SDK a modulu runtime ve Windows, Linuxu, macOS a Dockeru.
Konkrétní verzi sady .NET SDK můžete nainstalovat přidáním úlohy UseDotNet@2 do souboru YAML kanálu nebo přidáním úlohy do kanálu pomocí klasického editoru.
Příklad fragmentu kódu YAML:
steps:
- task: UseDotNet@2
inputs:
version: '8.x'
Vaše buildy běží na agentech hostovaných Microsoftem. Projekty .NET Core můžete sestavit pomocí sady .NET Core SDK a modulu runtime ve Windows, Linuxu a macOS.
Alternativně můžete použít agenta v místním prostředí. S agentem v místním prostředí můžete používat sady Preview nebo privátní sady SDK, které Azure DevOps Services oficiálně nepodporuje, a spouštět přírůstkové buildy.
Vytvoření kanálu
K vytvoření kanálu můžete použít editor kanálů YAML nebo klasický editor. Pokud chcete použít klasický editor, vyberte Použít klasický editor.
Vytvoření nového kanálu a výběr zdroje
Přihlaste se ke své organizaci Azure DevOps a přejděte do svého projektu.
Přejděte na Kanály a pak vyberte Nový kanál nebo Vytvořit kanál , pokud vytváříte první kanál.
Kroky průvodce proveďte tak, že nejprve vyberete GitHub jako umístění zdrojového kódu.
Můžete být přesměrováni na GitHub kvůli přihlášení. Pokud ano, zadejte svoje přihlašovací údaje GitHubu.
Až se zobrazí seznam úložišť, vyberte úložiště.
K instalaci aplikace Azure Pipelines můžete být přesměrováni na GitHub. Pokud ano, vyberte Schválit a nainstalovat.
Konfigurace kanálu
Když se zobrazí karta Konfigurovat, vyberte Zobrazit více a ze seznamu vyberte šablonu kanálu ASP.NET Core.
Prozkoumejte nový kanál a podívejte se, co YAML dělá.
Soubor YAML si můžete přizpůsobit podle svých požadavků. Můžete například zadat fond agentů nebo přidat úlohu pro instalaci jiné sady .NET SDK.
Uložení a spuštění kanálu
Až budete připraveni, vyberte Uložit a spustit.
Volitelně můžete zprávu potvrzení upravit.
Potvrďte nový soubor azure-pipelines.yml do úložiště výběrem možnosti Uložit a spustit.
Pokud chcete sledovat kanál v akci, vyberte úlohu v části Úlohy .
Vytvoření a spuštění kanálu
Kanál můžete vytvořit pomocí editoru kanálů YAML nebo klasického editoru.
- Přejděte do projektu a vyberte Kanály.
- Vyberte Vytvořit kanál nebo Nový kanál, pokud vytváříte první kanál pro tento projekt.
Výběr zdroje
Vyberte zdrojové úložiště. V tomto příkladu použijte GitHub Enterprise Server.
- Zadejte adresu URL svého účtu GitHubu. Například
https://github.com/<username>
. - Zadejte svůj osobní přístupový token pro váš účet GitHubu.
- Zadejte název připojení služby. Například
my-github
. - Vyberte Vytvořit.
- Zadejte adresu URL svého účtu GitHubu. Například
Vyberte úložiště GitHub.
Konfigurace kanálu
Na kartě Konfigurace vyberte Zobrazit více a ze seznamu vyberte šablonu kanálu ASP.NET Core.
Prozkoumejte nový kanál a podívejte se, co YAML dělá.
Soubor YAML si můžete přizpůsobit podle svých požadavků. Můžete například přidat úkoly k instalaci sady .NET SDK nebo k otestování a publikování projektu.
Uložení a spuštění kanálu
Zvolte Uložit.
Chcete-li potvrdit soubor YAML kanálu do úložiště, upravte zprávu potvrzení podle potřeby a vyberte Uložit.
Vyberte Spustit a spusťte kanál.
Pokud chcete zobrazit protokoly sestavení při spuštění kanálu, vyberte číslo buildu v horní části stránky.
Zvolte Uložit a Spustit.
Pokud chcete nový soubor azure-pipelines.yml potvrdit do úložiště, upravte zprávu potvrzení podle potřeby a vyberte Uložit a spustit.
Pokud chcete sledovat kanál v akci, vyberte úlohu v části Úlohy .
Teď máte funkční kanál, který je připravený k přizpůsobení. Přečtěte si další informace o některých běžných způsobech přizpůsobení kanálu.
Sestavení prostředí
Azure Pipelines používá k sestavení projektů .NET Core agenty v místním prostředí. Ujistěte se, že na agentech máte nainstalovanou potřebnou verzi sady .NET Core SDK a modulu runtime. Projekty .NET Core můžete sestavit pomocí sady .NET Core SDK a modulu runtime ve Windows, Linuxu, macOS a Dockeru.
Pokud například chcete vybrat možnosti fondu a agenta v souboru YAML kanálu:
Pro úlohu sestavení můžete vybrat fond agentů a agenta. Agenti jsou určeni na základě jejich možností.
pool:
name: myPrivateAgents
demands:
- agent.os -equals Darwin
- anotherCapability -equals somethingElse
Konkrétní verzi sady .NET SDK můžete nainstalovat přidáním úlohy UseDotNet@2 do kanálu. Mějte na paměti, že pro agenty, kteří běží na fyzických systémech, se instalace sad SDK a nástrojů prostřednictvím kanálu změní prostředí sestavení na hostiteli agenta.
Pokud chcete nainstalovat novější sadu SDK, nastavte performMultiLevelLookup
ji v true
následujícím fragmentu kódu:
steps:
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
version: 8.x
performMultiLevelLookup: true
includePreviewVersions: true # Required for preview versions
Azure Pipelines můžete použít k sestavení projektů .NET Core ve Windows, Linuxu nebo macOS bez nutnosti nastavení infrastruktury.
Například Ubuntu je zde nastaven v souboru YAML kanálu.
pool:
vmImage: 'ubuntu-latest'
Úplný seznam imagí a dalších příkladů konfigurace najdete v agentech hostovaných Microsoftem.
Agenti hostovaní Microsoftem v Azure Pipelines zahrnují několik předinstalovaných verzí podporovaných sad .NET Core SDK. Agenti hostovaní Microsoftem nezahrnují některé starší verze sady .NET Core SDK. Tyto verze také obvykle nezahrnují předběžné verze. Pokud tyto verze sady SDK potřebujete na agentech hostovaných Microsoftem, nainstalujte je pomocí úlohy UseDotNet@2 .
Pokud chcete například nainstalovat sadu SDK 5.0.x, přidejte následující fragment kódu:
steps:
- task: UseDotNet@2
inputs:
version: '5.x'
Agenti Windows už obsahují modul runtime .NET Core. Pokud chcete nainstalovat novější sadu SDK, nastavte performMultiLevelLookup
ji v true
následujícím fragmentu kódu:
steps:
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
version: 8.x
performMultiLevelLookup: true
includePreviewVersions: true # Required for preview versions
Tip
Pokud chcete ušetřit náklady na spuštění instalačního programu nástroje, můžete nastavit agenta v místním prostředí s Linuxem, macOS nebo Windows. Pokud máte velké úložiště nebo spouštíte přírůstkové sestavení, můžete také využít agenty v místním prostředí, abyste ušetřili další čas. Agent v místním prostředí vám může také pomoct s používáním sad Preview nebo privátních sad SDK, které Azure DevOps oficiálně nepodporuje nebo které jsou dostupné jenom ve vašich podnikových nebo místních prostředích.
Obnovení závislostí
NuGet je oblíbený způsob, jak záviset na kódu, který nevytvořujete. Balíčky NuGet a nástroje specifické pro projekt, které jsou zadané v souboru projektu, můžete stáhnout spuštěním dotnet restore
příkazu buď prostřednictvím úlohy .NET Core , nebo přímo ve skriptu ve vašem kanálu. Další informace najdete v tématu úloha .NET Core (DotNetCoreCLI@2).
Balíčky NuGet si můžete stáhnout z Azure Artifacts, NuGet.org nebo z jiného externího nebo interního úložiště NuGet. Úloha .NET Core je zvláště užitečná k obnovení balíčků z ověřených informačních kanálů NuGet. Pokud je váš informační kanál ve stejném projektu jako kanál, nemusíte se ověřovat.
Tento kanál používá v úloze DotNetCoreCLI@2 informační kanál dotnet restore
Azure Artifact.
trigger:
- main
pool:
vmImage: 'windows-latest'
steps:
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
version: 8.x
performMultiLevelLookup: true
includePreviewVersions: true # Required for preview versions
variables:
buildConfiguration: 'Release'
steps:
- task: DotNetCoreCLI@2
inputs:
command: 'restore'
feedsToUse: 'select'
vstsFeed: 'my-vsts-feed' # A series of numbers and letters
- task: DotNetCoreCLI@2
inputs:
command: 'build'
arguments: '--configuration $(buildConfiguration)'
displayName: 'dotnet build $(buildConfiguration)'
Tento dotnet restore
příkaz používá NuGet.exe
balíček se sadou .NET Core SDK a může obnovit pouze balíčky zadané v souborech projektu .csproj
.NET Core.
Pokud máte ve svém řešení také projekt Microsoft .NET Framework nebo používáte package.json
k určení závislostí, obnovte tyto závislosti pomocí úlohy NuGet .
- task: NuGetCommand@2
inputs:
command: 'restore'
restoreSolution: '**/*.sln'
feedsToUse: 'select'
V sadě .NET Core SDK verze 2.0 a novějších se balíčky automaticky obnoví při spouštění příkazů, jako dotnet build
je . Pokud ale použijete ověřený informační kanál, budete muset k obnovení balíčků použít úlohu .NET Core .
Sestavení můžou selhat kvůli problémům s připojením při obnovování balíčků z NuGet.org. K ukládání balíčků do mezipaměti můžete použít Azure Artifacts s upstreamovými zdroji . Přihlašovací údaje kanálu se automaticky použijí při připojení k Azure Artifacts. Tyto přihlašovací údaje jsou obvykle odvozeny z účtu služby sestavení kolekce projektů. Další informace o použití Azure Artifacts k ukládání balíčků NuGet do mezipaměti najdete v tématu Připojení k informačním kanálům Azure Artifact.
Pokud chcete zadat úložiště NuGet, vložte adresu URL do NuGet.config
souboru v úložišti. Pokud je váš informační kanál ověřený, spravujte jeho přihlašovací údaje vytvořením připojení služby NuGet na kartě Služby v části Nastavení projektu.
Když používáte agenty hostované Microsoftem, získáte nový počítač při každém spuštění sestavení, který obnoví balíčky při každém spuštění. Obnovení může trvat značné množství času. Pokud chcete zmírnit omezení, můžete použít Azure Artifacts nebo agenta v místním prostředí s výhodou použití mezipaměti balíčků.
Další informace o připojeních služeb NuGet najdete v tématu publikování do informačních kanálů NuGet.
Obnovení balíčků z externího informačního kanálu
Pomocí následujícího příkazu obnovte balíčky z externího informačního kanálu.
Příkaz pro obnovení můžete do kanálu přidat pomocí editoru kanálů YAML tak, že do souboru vložíte přímo následující fragment kódu azure-pipelines.yml
nebo pomocí pomocníka pro úlohy přidáte úlohu .NET Core .
# do this before your build tasks
steps:
- task: DotNetCoreCLI@2
displayName: Restore
inputs:
command: restore
projects: '**/*.csproj'
feedsToUse: config
nugetConfigPath: NuGet.config # Relative to root of the repository
externalFeedCredentials: <Name of the NuGet service connection>
<Zástupný text> nahraďte názvem připojení služby.
Použití pomocníka pro úkoly:
Pokud chcete přidat úlohu sestavení pomocí pomocníka pro úlohy, postupujte takto:
Přejděte na pozici v souboru YAML, kam chcete úkol vložit.
V katalogu úloh vyberte .NET Core.
V rozevíracím seznamu Příkaz vyberte příkaz pro obnovení.
Do pole Cesta k projektům zadejte cestu k souborům
.csproj
.Vyberte Přidat.
Výběrem možnosti Uložit změnu potvrďte.
Poznámka:
Ujistěte se, že je v NuGet.config
souboru zadaný vlastní informační kanál a že přihlašovací údaje jsou zadané v připojení služby NuGet.
Sestavení projektu
Sestavte projekty .NET Core spuštěním dotnet build
příkazu. Tento příkaz můžete do kanálu přidat jako skript příkazového řádku nebo pomocí úlohy .NET Core.
Sestavení .NET Core pomocí úlohy .NET Core
Příklad YAML pro sestavení pomocí úlohy DotNetCoreCLI@2:
steps:
- task: DotNetCoreCLI@2
displayName: Build
inputs:
command: build
projects: '**/*.csproj'
arguments: '--configuration $(buildConfiguration)' # Update this to match your needs
Úlohu sestavení můžete přidat pomocí editoru kanálů YAML přímo úpravou souboru nebo přidáním úlohy .NET Core pomocí pomocníka pro úlohy.
Pokud chcete přidat úlohu sestavení pomocí pomocníka pro úlohy, postupujte takto:
Přejděte na pozici v souboru YAML, kam chcete úkol vložit.
V katalogu úloh vyberte .NET Core.
V rozevíracím seznamu Příkaz vyberte příkaz sestavení.
Do pole Cesta k projektům zadejte cestu k souborům
.csproj
.Vyberte Přidat.
Výběrem možnosti Uložit změnu potvrďte.
Sestavení .NET Core pomocí skriptu příkazového řádku
Příklad YAML pro sestavení pomocí dotnet build
skriptu:
steps:
- script: dotnet build --configuration $(buildConfiguration)
displayName: 'dotnet build $(buildConfiguration)'
Úlohu sestavení můžete přidat pomocí editoru kanálů YAML přímo úpravou souboru nebo přidáním úlohy příkazového řádku .
Pomocí následujících kroků přidejte úlohu příkazového řádku :
Přejděte na pozici v souboru YAML, kam chcete úkol vložit.
Vyberte příkazový řádek z katalogu úloh.
Volitelně můžete přidat zobrazovaný název.
dotnet build
Zadejte příkaz s parametry. Napříkladdotnet build --configuration $(buildConfiguration)
.Jako pracovní adresář zadejte cestu k
.csproj
souboru.Vyberte Přidat.
Výběrem možnosti Uložit změnu potvrďte.
Přidání příkazů sady .NET SDK do kanálu
Do projektu můžete přidat příkazy sady .NET SDK jako skript nebo pomocí úlohy .NET Core. Úloha .NET Core (DotNetCoreCLI@2) umožňuje do kanálu snadno přidávat příkazy rozhraní příkazového řádku dotnet. Úlohy .NET Core můžete přidat úpravou souboru YAML nebo pomocí klasického editoru.
Přidání příkazu .NET CLI pomocí úlohy .NET Core
Pokud chcete přidat příkaz rozhraní příkazového řádku .NET Core pomocí editoru kanálů YAML, postupujte následovně:
Přejděte na pozici v souboru YAML, kam chcete úkol vložit.
V katalogu úloh vyberte .NET Core .
Vyberte příkaz, který chcete spustit.
Nakonfigurujte všechny potřebné možnosti.
Vyberte Přidat.
Výběrem možnosti Uložit změnu potvrďte.
Přidání příkazu rozhraní příkazového řádku .NET Core pomocí skriptu
Do souboru můžete přidat příkazy rozhraní příkazového script
azure-pipelines.yml
řádku .NET Core.
Příklad:
steps:
# ...
- script: dotnet test <test-project>
Instalace nástroje
Pokud chcete nainstalovat globální nástroj .NET Core, jako je dotnetsay v buildu spuštěném ve Windows, postupujte takto:
- Přidejte úlohu .NET Core a nastavte následující vlastnosti:
- Příkaz: vlastní.
- Cesta k projektům: ponechejte prázdné.
- Vlastní příkaz: nástroj.
- Argumenty:
install -g dotnetsay
.
- Příkaz: vlastní.
- Pokud chcete nástroj spustit, přidejte příkazový řádek a nastavte následující vlastnosti:
- Skript:
dotnetsay
.
- Skript:
Spuštění testů
Pokud máte v úložišti projekty testů, můžete pomocí úlohy .NET Core spouštět testy jednotek pomocí testovacích architektur, jako jsou MSTest, xUnit a NUnit. Testovací projekt musí odkazovat na Microsoft.NET.Test.SDK verze 15.8.0 nebo vyšší. Výsledky testů se automaticky publikují do služby. Tyto výsledky jsou k dispozici v souhrnu sestavení a lze je použít k řešení potíží s neúspěšnými testy a analýzou časování testů.
Testovací úlohu můžete do kanálu přidat pomocí úlohy DotNetCoreCLI@2 nebo do azure-pipelines.yml
souboru přidat následující fragment kódu:
steps:
# ...
# do this after other tasks such as building
- task: DotNetCoreCLI@2
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration)'
Při použití editoru úloh .NET Core by příkaz pro testování a cestu k projektům měl odkazovat na testovací projekty ve vašem řešení.
Případně můžete příkaz spustit dotnet test
s konkrétním protokolovacím nástrojem a pak použít úlohu Publikovat výsledky testu:
steps:
# ...
# do this after your tests have run
- script: dotnet test <test-project> --logger trx
- task: PublishTestResults@2
condition: succeededOrFailed()
inputs:
testRunner: VSTest
testResultsFiles: '**/*.trx'
Shromažďování pokrytí kódu
Při sestavování na platformě Windows je možné shromažďovat metriky pokrytí kódu pomocí integrovaného kolektoru dat pokrytí. Testovací projekt musí odkazovat na Microsoft.NET.Test.SDK verze 15.8.0 nebo vyšší.
Při použití úlohy .NET Core ke spuštění testů se data pokrytí automaticky publikují na server. Soubor .coverage
lze stáhnout ze souhrnu sestavení pro zobrazení v sadě Visual Studio.
Do souboru přidejte následující fragment kódu azure-pipelines.yml
:
steps:
# ...
# do this after other tasks such as building
- task: DotNetCoreCLI@2
inputs:
command: test
projects: '**/*Tests/*.csproj'
arguments: '--configuration $(buildConfiguration) --collect "Code coverage"'
Přidání úlohy .NET Core prostřednictvím editoru úloh:
Přidejte úlohu .NET Core do úlohy sestavení a nastavte následující vlastnosti:
- Příkaz: test.
- Cesta k projektům: Měl by odkazovat na testovací projekty ve vašem řešení.
- Argumenty:
--configuration $(BuildConfiguration) --collect "Code coverage"
.
Ujistěte se, že je vybraná možnost Publikovat výsledky testu.
Pokud se rozhodnete příkaz spustit dotnet test
, zadejte protokolovací nástroj výsledků testů a možnosti pokrytí. Pak použijte úlohu Publikovat výsledky testu:
steps:
# ...
# do this after your tests have run
- script: dotnet test <test-project> --logger trx --collect "Code coverage"
- task: PublishTestResults@2
inputs:
testRunner: VSTest
testResultsFiles: '**/*.trx'
Shromažďování metrik pokrytí kódu pomocí Coverletu
Pokud vytváříte v Linuxu nebo macOS, můžete ke shromažďování metrik pokrytí kódu použít Coverlet nebo podobný nástroj.
Výsledky pokrytí kódu můžete publikovat na serveru pomocí úlohy Publikovat výsledky pokrytí kódu (PublishCodeCoverageResults@1). Nástroj pokrytí musí být nakonfigurovaný tak, aby vygeneroval výsledky ve formátu pokrytí Cobertura nebo JaCoCo.
Pokud chcete spustit testy a publikovat pokrytí kódu pomocí Coverletu, proveďte následující úlohy:
Přidejte odkaz na
coverlet.collector
balíček NuGet.Do souboru přidejte následující fragment kódu
azure-pipelines.yml
:- task: UseDotNet@2 inputs: version: '8.x' includePreviewVersions: true # Required for preview versions - task: DotNetCoreCLI@2 displayName: 'dotnet build' inputs: command: 'build' configuration: $(buildConfiguration) - task: DotNetCoreCLI@2 displayName: 'dotnet test' inputs: command: 'test' arguments: '--configuration $(buildConfiguration) --collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=cobertura' publishTestResults: true projects: 'MyTestLibrary' # update with your test project directory - task: PublishCodeCoverageResults@1 displayName: 'Publish code coverage report' inputs: codeCoverageTool: 'Cobertura' summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
Zabalení a doručení kódu
Artefakty sestavení můžete publikovat pomocí:
- Publikování do Azure Pipelines
- Publikování balíčků do Azure Artifacts
- Vytvoření balíčku NuGet a publikování do informačního kanálu NuGet
- Vytvoření .zip archivu pro nasazení webové aplikace
Publikování artefaktů do Azure Pipelines
Pokud chcete publikovat výstup sestavení .NET do kanálu, proveďte následující úlohy:
- Spusťte
dotnet publish --output $(Build.ArtifactStagingDirectory)
rozhraní příkazového řádku .NET nebo pomocí příkazu publish přidejte úlohu DotNetCoreCLI@2 . - Publikujte artefakt pomocí úlohy Publikovat artefakt kanálu.
Do souboru přidejte následující fragment kódu azure-pipelines.yml
:
steps:
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
# this code takes all the files in $(Build.ArtifactStagingDirectory) and uploads them as an artifact of your build.
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)'
artifactName: 'myWebsite'
Poznámka:
Úloha DotNetCoreCLI@2 má publishWebProjects
vstup, který je ve výchozím nastavení nastaven na true . Tento úkol ve výchozím nastavení publikuje všechny webové projekty v úložišti. Další nápovědu a informace najdete v opensourcové úloze na GitHubu.
Pokud chcete před publikováním zkopírovat více souborů do adresáře sestavení, použijte úlohu Kopírovat soubory (CopyFile@2).
Pokud chcete publikovat výstup sestavení .NET do kanálu, proveďte následující úlohy:
- Spusťte
dotnet publish --output $(Build.ArtifactStagingDirectory)
rozhraní příkazového řádku nebo pomocí příkazu publish přidejte DotNetCoreCLI@2 úlohu. - Publikujte artefakt pomocí úlohy Publikovat artefakt sestavení (PublishBuildArtifacts@1).
Přidáním následujícího fragmentu kódu do azure-pipelines.yml
souboru publikujte artefakty sestavení jako soubor .zip:
steps:
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
# this code takes all the files in $(Build.ArtifactStagingDirectory) and uploads them as an artifact of your build.
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
Další informace najdete v tématu Publikování a stažení artefaktů sestavení.
Publikování do informačního kanálu NuGet
Pokud chcete vytvořit balíček NuGet a publikovat ho do informačního kanálu NuGet, přidejte následující fragment kódu:
steps:
# ...
# do this near the end of your pipeline in most cases
- script: dotnet pack /p:PackageVersion=$(version) # define version variable elsewhere in your pipeline
- task: NuGetAuthenticate@1
inputs:
nuGetServiceConnections: '<Name of the NuGet service connection>'
- task: NuGetCommand@2
inputs:
command: push
nuGetFeedType: external
publishFeedCredentials: '<Name of the NuGet service connection>'
versioningScheme: byEnvVar
versionEnvVar: version
Poznámka:
Úloha NuGetAuthenticate@1 nepodporuje ověřování klíčů rozhraní NUGet API. Pokud používáte klíč rozhraní API NuGet, použijte úlohu NuGetCommand@2 se vstupem command
nastaveným na push
argument --api-key . Například dotnet nuget push --api-key $(NuGetApiKey)
.
Další informace o správě verzí a publikování balíčků NuGet najdete v tématu publikování v informačních kanálech NuGet.
Publikování balíčku NuGet do Azure Artifacts
Balíčky NuGet můžete publikovat do informačního kanálu Azure Artifacts pomocí NuGetCommand@2 k nasdílení změn do informačního kanálu Azure Artifacts. Podívejte se například na téma Publikování balíčků NuGet pomocí Azure Pipelines.
Nasazení webové aplikace
Pokud chcete vytvořit archiv souborů .zip, který je připravený k publikování do webové aplikace, přidejte následující fragment kódu:
steps:
# ...
# do this after you've built your app, near the end of your pipeline in most cases
# for example, you do this before you deploy to an Azure web app on Windows
- task: DotNetCoreCLI@2
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
Pokud chcete tento archiv publikovat do webové aplikace, podívejte se na nasazení Azure Web Apps.
Sestavení image a nasdílení změn do registru kontejneru
Můžete také vytvořit image pro vaši aplikaci a odeslat ji do registru kontejneru.
Publikování symbolů
Pomocí úlohy PublishSymbols@2 můžete publikovat symboly na serveru symbolů Azure Artifacts nebo ve sdílené složce.
Pokud chcete například publikovat symboly do sdílené složky, přidejte do azure-pipelines.yml
souboru následující fragment kódu:
- task: PublishSymbols@2
inputs:
SymbolsFolder: '$(Build.SourcesDirectory)'
SearchPattern: '**/bin/**/*.pdb'
IndexSources: true
PublishSymbols: true
SymbolServerType: 'FileShare'
SymbolsPath: '\\server\shareName'
Při použití klasického editoru vyberte zdroje indexu publikovat symboly z katalogu úloh, které chcete přidat do kanálu.
Další informace najdete v tématu Publikování symbolů.
Odstraňování potíží
Pokud můžete projekt sestavit na vývojovém počítači, ale máte potíže s jeho sestavením v Azure Pipelines, prozkoumejte následující možné příčiny a nápravné akce:
- Předběžné verze sady .NET Core SDK nejsou nainstalované na agentech hostovaných Microsoftem. Po vydání nové verze sady .NET Core SDK může trvat několik týdnů, než se zavede do všech datových center Azure Pipelines. Nemusíte čekat na dokončení tohoto uvedení. Pomocí úlohy Použít .NET Core můžete nainstalovat požadovanou verzi sady .NET Core SDK na agenty hostované Microsoftem.
Zkontrolujte verze sady .NET Core SDK a modul runtime na vývojovém počítači a ujistěte se, že odpovídají agentu. Do kanálu můžete zahrnout skript
dotnet --version
příkazového řádku, který vytiskne verzi sady .NET Core SDK. Buď pomocí instalačního programu nástroje .NET Core nasaďte stejnou verzi na agenta, nebo aktualizujte projekty a vývojový počítač na novější verzi sady .NET Core SDK.V integrovaném vývojovém prostředí sady Visual Studio možná používáte logiku, která není v kanálu zakódovaná. Azure Pipelines spouští všechny příkazy, které zadáte v úlohách po druhém v novém procesu. Prozkoumejte protokoly z buildu kanálů a podívejte se na přesné příkazy, které se spustily jako součást sestavení. Pokud chcete problém najít, opakujte stejné příkazy ve stejném pořadí na vývojovém počítači.
Pokud máte smíšené řešení, které obsahuje některé projekty .NET Core a některé projekty rozhraní .NET Framework, měli byste také použít úlohu NuGet k obnovení balíčků zadaných v
packages.config
souborech. Přidejte úlohu SESTAVENÍ nástroje MSBuild nebo Visual Studio pro sestavení projektů rozhraní .NET Framework.Sestavení může při obnovování balíčků občas selhat: dochází k problémům NuGet.org nebo dochází k problémům se sítí mezi datovým centrem Azure a NuGet.org. Můžete prozkoumat, jestli použití Azure Artifacts s NuGet.org jako nadřazený zdroj zlepšuje spolehlivost sestavení, protože není v naší kontrole.
Někdy se může stát, že se spustí nová verze sady .NET Core SDK nebo sady Visual Studio, může dojít k přerušení sestavení. Například novější verze nebo funkce nástroje NuGet se dodává se sadou SDK, která může narušit sestavení. Pokud chcete tento problém izolovat, použijte úlohu instalačního programu nástroje .NET Core k určení verze sady .NET Core SDK, která se používá v sestavení.
Často kladené dotazy
Otázka: Kde se dozvím další informace o Azure Artifacts?
A: Správa balíčků v Azure Artifacts
Otázka: Kde se dozvím další informace o příkazech .NET Core?
A: Nástroje rozhraní příkazového řádku .NET Core
Otázka: Kde najdu další informace o spouštění testů v řešení?
A: Testování jednotek v projektech .NET Core