Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje, jak používat sadu .NET SDK a její nástroje na buildovém serveru. Sada nástrojů .NET funguje interaktivně, kde vývojář zadá příkazy na příkazovém řádku a automaticky, kde server kontinuální integrace (CI) spouští skript sestavení. Příkazy, možnosti, vstupy a výstupy jsou stejné a jediné věci, které zadáte, představují způsob, jak získat nástroje a systém pro sestavení aplikace. Tento článek se zaměřuje na scénáře získávání nástrojů pro CI s doporučeními, jak navrhovat a strukturovat skripty sestavení.
Možnosti instalace pro servery sestavení CI
Pokud používáte GitHub, instalace je jednoduchá. K instalaci sady .NET SDK ve vašem pracovním postupu se můžete spolehnout na GitHub Actions. Doporučený způsob instalace sady .NET SDK v pracovním postupu je s actions/setup-net-core-sdk akcí. Další informace najdete v akci instalační sady .NET Core SDK na marketplace GitHubu. Příklady toho, jak to funguje, najdete v Rychlý start: Vytvoření workflow pro ověření sestavení na GitHubu.
Nativní instalační programy
Nativní instalační programy jsou k dispozici pro macOS, Linux a Windows. Instalační programy vyžadují přístup správce (sudo) k serveru sestavení. Výhodou použití nativního instalačního programu je, že nainstaluje všechny nativní závislosti potřebné ke spuštění nástrojů. Nativní instalační programy také poskytují systémovou instalaci sady SDK.
Uživatelé macOS by měli používat instalační programy PKG. Na Linuxu je možné vybrat si ze správce balíčků založeného na repozitářích, jako je apt-get pro Ubuntu nebo yum pro CentOS Stream, nebo přímého použití balíčků ve formátu DEB nebo RPM. Ve Windows použijte instalační program MSI.
Nejnovější stabilní binární soubory najdete na stránce stahování .NET. Pokud chcete použít nejnovější (a potenciálně nestabilní) předběžné nástroje, použijte odkazy uvedené v úložišti GitHubu dotnet/installer. Pro linuxové distribuce tar.gz jsou k dispozici archivy (také známé jako tarballs); k instalaci .NET použijte instalační skripty obsažené v archivech.
Instalační skript
Použití instalačního skriptu umožňuje instalaci na buildovém serveru bez správy a snadnou automatizaci pro získání nástrojů. Skript se postará o stažení nástrojů a jeho extrahování do výchozího nebo zadaného umístění pro použití. Můžete také zadat verzi nástrojů, které chcete nainstalovat a zda chcete nainstalovat celou sadu SDK nebo pouze sdílený modul runtime.
Instalační skript se automaticky spustí na začátku sestavení, aby se načítá a nainstalovala požadovaná verze sady SDK. Požadovaná verze je libovolná verze sady SDK, které vaše projekty vyžadují k sestavení. Skript umožňuje nainstalovat sadu SDK do místního adresáře na serveru, spustit nástroje z nainstalovaného umístění a pak po sestavení vyčistit (nebo nechat službu CI vyčistit). To poskytuje zapouzdření a izolaci pro celý proces sestavení. Referenční informace o instalačním skriptu najdete v článku dotnet-install .
Poznámka:
Služby Azure DevOps
Při použití instalačního skriptu se nativní závislosti nenainstaluje automaticky. Pokud je operační systém nemá, musíte nainstalovat nativní závislosti. Další informace najdete v tématu Instalace .NET ve Windows, Linuxu a macOS.
Příklady nastavení CI
Tato část popisuje ruční nastavení pomocí powershellového nebo bash skriptu spolu s popisy řešení CI pro software jako službu (SaaS). Pokrytá řešení CI SaaS jsou Travis CI, AppVeyor a Azure Pipelines. Informace o GitHub Actions najdete v tématu GitHub Actions a .NET.
Ruční nastavení
Každá služba SaaS má své metody pro vytvoření a konfiguraci procesu sestavení. Pokud používáte jiné řešení SaaS, než je uvedené nebo vyžadujete přizpůsobení nad rámec předem zabalené podpory, musíte provést aspoň určitou ruční konfiguraci.
Ruční instalace obecně vyžaduje, abyste získali verzi nástrojů (nebo nejnovější noční sestavení nástrojů) a spustili skript sestavení. K orchestraci příkazů .NET nebo použití souboru projektu, který popisuje proces sestavení, můžete použít skript PowerShellu nebo Bash. V sekci Orchestrace najdete podrobnější informace o těchto možnostech.
Po vytvoření skriptu, který provede ruční instalaci serveru sestavení CI, ho na vývojovém počítači použijte k místnímu sestavení kódu pro účely testování. Jakmile ověříte, že skript běží dobře místně, nasaďte ho na svůj server sestavení CI. Relativně jednoduchý skript PowerShellu ukazuje, jak získat sadu .NET SDK a nainstalovat ji na buildovací server Windows:
Na konci skriptu zadáte implementaci procesu sestavení. Skript získá nástroje a pak spustí proces sestavení.
$ErrorActionPreference="Stop"
$ProgressPreference="SilentlyContinue"
# $LocalDotnet is the path to the locally-installed SDK to ensure the
# correct version of the tools are executed.
$LocalDotnet=""
# $InstallDir and $CliVersion variables can come from options to the
# script.
$InstallDir = "./cli-tools"
$CliVersion = "6.0.7"
# Test the path provided by $InstallDir to confirm it exists. If it
# does, it's removed. This is not strictly required, but it's a
# good way to reset the environment.
if (Test-Path $InstallDir)
{
rm -Recurse $InstallDir
}
New-Item -Type "directory" -Path $InstallDir
Write-Host "Downloading the CLI installer..."
# Use the Invoke-WebRequest PowerShell cmdlet to obtain the
# installation script and save it into the installation directory.
Invoke-WebRequest `
-Uri "https://dot.net/v1/dotnet-install.ps1" `
-OutFile "$InstallDir/dotnet-install.ps1"
Write-Host "Installing the CLI requested version ($CliVersion) ..."
# Install the SDK of the version specified in $CliVersion into the
# specified location ($InstallDir).
& $InstallDir/dotnet-install.ps1 -Version $CliVersion `
-InstallDir $InstallDir
Write-Host "Downloading and installation of the SDK is complete."
# $LocalDotnet holds the path to dotnet.exe for future use by the
# script.
$LocalDotnet = "$InstallDir/dotnet"
# Run the build process now. Implement your build script here.
Travis CI
Můžete nakonfigurovat Travis CI tak, aby nainstaloval sadu .NET SDK pomocí jazyka csharp a klíče dotnet. Pro více informací se podívejte na oficiální dokumentaci Travis CI o sestavování projektu v C#, F# nebo Visual Basic. Pamatujte, že při přístupu k informacím o Travis CI pracuje komunitou spravovaný language: csharp identifikátor jazyka pro všechny jazyky .NET, včetně F# a Mono.
Travis CI spouští úlohy jak na macOS, tak na Linuxu ve matici sestavení, ve které zadáte kombinaci runtime, prostředí a vyloučení a zahrnutí, abyste pokryli kombinace sestavení pro vaši aplikaci. Další informace najdete v článku Přizpůsobení sestavení v dokumentaci k Travis CI. Nástroje založené na MSBuildu zahrnují do balíčku runtime moduly dlouhodobé podpory (LTS) a standardní podpory (STS); takže instalací sady SDK získáte vše, co potřebujete k sestavení.
AppVeyor
AppVeyor nainstaluje .NET 6 SDK s Visual Studio 2022 sestavovacím pracovním prostředím. K dispozici jsou další obrazy sestavení s různými verzemi .NET SDK. Další informace najdete v článku o vytváření imagí pracovních procesů v dokumentaci appVeyoru.
Binární soubory sady .NET SDK jsou staženy a rozbaleny do podadresáře pomocí instalačního skriptu, a poté jsou přidány do proměnné prostředí PATH. Přidejte matici sestavení pro spouštění integračních testů s více verzemi sady .NET SDK:
environment:
matrix:
- CLI_VERSION: 6.0.7
- CLI_VERSION: Latest
Azure DevOps Services
Nakonfigurujte Službu Azure DevOps Services pro sestavování projektů .NET pomocí jednoho z těchto přístupů:
- Pomocí příkazů spusťte skript z kroku ruční instalace.
- Vytvořte sestavení složené z několika předdefinovaných úloh sestavení Azure DevOps Services, které jsou nakonfigurované pro použití nástrojů .NET.
Obě řešení jsou platná. Pomocí ručního instalačního skriptu řídíte verzi nástrojů, které obdržíte, protože je stáhnete jako součást sestavení. Sestavení se spouští ze skriptu, který musíte vytvořit. Tento článek se zabývá pouze ruční možností. Další informace o vytváření sestavení pomocí úloh sestavení Azure DevOps Services najdete v dokumentaci ke službě Azure Pipelines .
Pokud chcete použít skript ručního nastavení ve službě Azure DevOps Services, vytvořte novou definici sestavení a zadejte skript, který se má spustit pro krok sestavení. Toho se dosahuje pomocí uživatelského rozhraní Azure DevOps Services:
Začněte tvorbou nové sestavovací definice. Jakmile se dostanete na obrazovku, která vám poskytne možnost definovat, jaký druh sestavení chcete vytvořit, vyberte možnost Prázdné .
Po konfiguraci úložiště pro sestavení budete přesměrováni na definice sestavení. Vyberte Přidat krok sestavení:
Zobrazí se katalog úloh. Katalog obsahuje úlohy, které používáte v sestavení. Vzhledem k tomu, že máte skript, vyberte tlačítko Přidat pro PowerShell: Spusťte skript PowerShellu.
Nakonfigurujte krok sestavení. Přidejte skript z úložiště, které vytváříte:
Orchestrace sestavení
Většina tohoto dokumentu popisuje, jak získat nástroje .NET a nakonfigurovat různé služby CI bez poskytnutí informací o orchestraci nebo skutečném sestavení kódu pomocí .NET. Možnosti strukturování procesu sestavení závisí na mnoha faktorech, které zde nelze obecně probít. Další informace o orchestraci vašich sestavení s jednotlivými technologiemi najdete v dokumentačních sadách Travis CI, AppVeyor a Azure Pipelines.
Dva hlavní přístupy, které můžete zvolit při strukturování procesu sestavení kódu .NET s využitím .NET nástrojů, jsou použít přímo MSBuild nebo použít příkazy příkazového řádku .NET. Jaký přístup byste měli zvolit, je určeno vaší úrovní pohodlí ohledně přístupů a kompromisů mezi složitostí. NÁSTROJ MSBuild umožňuje vyjádřit proces sestavení jako úkoly a cíle, ale přináší větší složitost učení syntaxe souborů projektu MSBuild. Použití nástrojů příkazového řádku .NET je možná jednodušší, ale vyžaduje zápis logiky orchestrace ve skriptovacím jazyce, jako bash je powershell.
Návod
Jedna vlastnost nástroje MSBuild, kterou budete chtít nastavit na true, je ContinuousIntegrationBuild. Tato vlastnost umožňuje nastavení, která se vztahují pouze na oficiální sestavení, na rozdíl od sestavení pro místní vývoj.