Vytvoření definice nasazení, která podporuje nasazení
Pokud chcete v Team Foundation Serveru (TFS) 2010 provést jakékoli sestavení, musíte vytvořit definici sestavení v rámci týmového projektu. Toto téma popisuje, jak vytvořit novou definici sestavení v sadě TFS a jak řídit nasazení webu v rámci procesu sestavení v team buildu.
Toto téma je součástí řady kurzů založených na požadavcích na podnikové nasazení fiktivní společnosti s názvem Fabrikam, Inc. Tato série kurzů používá ukázkové řešení – řešení Contact Manager – k reprezentaci webové aplikace s realistickou úrovní složitosti, včetně aplikace ASP.NET MVC 3, služby Windows Communication Foundation (WCF) a databázového projektu.
Metoda nasazení, která je základem těchto kurzů, je založená na přístupu k rozděleným souborům projektu popsaném v tématu Principy souboru projektu, ve kterém je proces sestavení a nasazení řízen dvěma soubory projektu – jeden obsahuje pokyny k sestavení, které platí pro každé cílové prostředí, a druhý obsahující nastavení sestavení a nasazení specifické pro prostředí. V době sestavení se soubor projektu pro konkrétní prostředí sloučí do souboru projektu nezávislého na prostředí, aby se vytvořila úplná sada pokynů k sestavení.
Přehled úkolů
Definice sestavení je mechanismus, který řídí, jak a kdy probíhá sestavení pro týmové projekty v sadě TFS. Každá definice sestavení určuje:
- Věci, které chcete vytvořit, jako jsou soubory řešení sady Visual Studio nebo vlastní soubory projektu Microsoft Build Engine (MSBuild).
- Kritéria, která určují, kdy se má sestavení provést, jako jsou ruční triggery, kontinuální integrace (CI) nebo gated check-in.
- Umístění, do kterého má týmové sestavení odesílat výstupy sestavení, včetně artefaktů nasazení, jako jsou webové balíčky a databázové skripty.
- Doba, po kterou by se mělo zachovat každé sestavení.
- Různé další parametry procesu sestavení.
Poznámka
Další informace o definicích sestavení najdete v tématu Definování procesu sestavení.
V tomto tématu se dozvíte, jak vytvořit definici sestavení, která používá CI, aby se sestavení aktivovalo, když vývojář zkontroluje nový obsah. Pokud sestavení proběhne úspěšně, služba sestavení spustí vlastní soubor projektu, který nasadí řešení do testovacího prostředí.
Při aktivaci sestavení je potřeba provést tyto akce:
- Nejprve by týmové sestavení mělo sestavit řešení. V rámci tohoto procesu týmové sestavení vyvolá kanál publikování na webu (WPP), který vygeneruje balíčky nasazení webu pro každý z projektů webové aplikace v řešení. Team Build také spustí všechny testy jednotek přidružené k řešení.
- Pokud sestavení řešení selže, týmové sestavení by nemělo provádět žádnou další akci. Selhání testů jednotek by se měla považovat za selhání sestavení.
- Pokud sestavení řešení proběhne úspěšně, týmové sestavení by mělo spustit soubor vlastního projektu, který řídí nasazení řešení. V rámci tohoto procesu týmové sestavení vyvolá nástroj Pro nasazení webu Internetové informační služby (IIS) pro instalaci zabalených webových aplikací na cílové webové servery a vyvolá nástroj VSDBCMD.exe pro spouštění skriptů pro vytváření databáze na cílových databázových serverech.
Tento postup znázorňuje:
Ukázkové řešení Contact Manageru zahrnuje vlastní soubor projektu MSBuild Publish.proj, který můžete spustit z nástroje MSBuild nebo Team Build. Jak je popsáno v tématu Principy procesu sestavení, tento soubor projektu definuje logiku, která nasazuje webové balíčky a databáze do cílového prostředí. Tento soubor obsahuje logiku, která vynechá proces sestavení a balení, pokud je spuštěný v team buildu, takže se poběží jenom úlohy nasazení. Je to proto, že když automatizujete nasazení tímto způsobem, obvykle budete chtít zajistit, aby se řešení před zahájením procesu nasazení úspěšně sestavily a projde všemi testy jednotek.
Další část vysvětluje, jak tento proces implementovat vytvořením nové definice sestavení.
Poznámka
Tento postup, ve kterém jeden automatizovaný proces sestavuje, testuje a nasazuje řešení, bude pravděpodobně nejvhodnější pro nasazení do testovacích prostředí. U přípravných a produkčních prostředí je mnohem pravděpodobnější, že budete chtít nasadit obsah z předchozího buildu, který jste už ověřili a ověřili v testovacím prostředí. Tento přístup je popsaný v dalším tématu Nasazení konkrétního sestavení.
Kdo provádí tento postup?
Tento postup obvykle provádí správce TFS. V některých případech může vedoucí vývojářského týmu převzít odpovědnost za kolekci týmových projektů v TFS. Abyste mohli vytvořit novou definici sestavení, musíte být členem skupiny Správci sestavení kolekce projektů pro kolekci týmových projektů, která obsahuje vaše řešení.
Vytvoření definice sestavení pro CI a nasazení
Další postup popisuje, jak vytvořit definici sestavení, kterou CI aktivuje. Pokud sestavení proběhne úspěšně, řešení se nasadí pomocí logiky ve vlastním souboru projektu MSBuild.
Vytvoření definice sestavení pro CI a nasazení
V sadě Visual Studio 2010 rozbalte v okně Team Explorer uzel týmového projektu, klikněte pravým tlačítkem na Builds (Sestavení) a pak klikněte na New Build Definition (Nová definice sestavení).
Na kartě Obecné pojmenujte definici sestavení (například DeployToTest) a volitelný popis.
Na kartě Aktivační událost vyberte kritéria, podle kterých chcete aktivovat nové sestavení. Pokud například chcete sestavit řešení a nasadit ho do testovacího prostředí pokaždé, když vývojář zkontroluje nový kód, vyberte Kontinuální integrace.
Na kartě Build Defaults (Výchozí nastavení sestavení ) zadejte do pole Kopírovat výstup sestavení do následující rozevírací složky cestu UNC (Universal Naming Convention) vaší složky (například \TFSBUILD\Drops).
Poznámka
V tomto umístění se v závislosti na nakonfigurovaných zásadách uchovávání informací ukládá několik sestavení. Pokud chcete publikovat artefakty nasazení z konkrétního sestavení do přípravného nebo produkčního prostředí, najdete je tady.
Na kartě Proces v rozevíracím seznamu Sestavit soubor procesu ponechte vybranou možnost DefaultTemplate.xaml . Toto je jedna z výchozích šablon procesu sestavení, které se přidávají do všech nových týmových projektů.
V tabulce Parametry procesu sestavení klikněte na řádek Položky k sestavení a potom klikněte na tlačítko se třemi tečky .
V dialogovém okně Položky k sestavení klikněte na Přidat.
Přejděte do umístění souboru řešení a klikněte na OK.
V dialogovém okně Položky k sestavení klikněte na Přidat.
V rozevíracím seznamu Položky typu vyberte Soubory projektu MSBuild.
Přejděte do umístění souboru vlastního projektu, pomocí kterého řídíte proces nasazení, vyberte soubor a klikněte na OK.
Dialogové okno Položky k sestavení by teď mělo obsahovat dvě položky. Klikněte na OK.
Na kartě Proces rozbalte v tabulce Sestavit parametry procesu oddíl Upřesnit .
Do řádku Argumenty NÁSTROJE MSBuild přidejte všechny argumenty příkazového řádku nástroje MSBuild, které vyžadují některé z položek k sestavení. Ve scénáři řešení Contact Manageru se vyžadují tyto argumenty:
/p:DeployOnBuild=true;DeployTarget=Package; TargetEnvPropsFile=EnvConfig\Env-Dev.proj
V tomto příkladu:
- Při sestavování řešení Správce kontaktů se vyžadují argumenty DeployOnBuild=true a DeployTarget=package . To dává nástroji MSBuild pokyn, aby po sestavení každého projektu webové aplikace vytvořil balíčky nasazení webu, jak je popsáno v tématu Vytváření a balení projektů webových aplikací.
- Při vytváření souboru Publish.proj se vyžaduje argument TargetEnvPropsFile. Tato vlastnost označuje umístění konfiguračního souboru specifického pro prostředí, jak je popsáno v tématu Principy procesu sestavení.
Na kartě Zásady uchovávání informací podle potřeby nakonfigurujte, kolik sestavení jednotlivých typů chcete zachovat.
Klikněte na Uložit.
Zařazení sestavení do fronty
V tomto okamžiku jste vytvořili aspoň jednu novou definici sestavení. Proces sestavení, který jste definovali, se teď spustí podle triggerů, které jste zadali v definici sestavení.
Pokud jste definici sestavení nakonfigurovali tak, aby používala CI, můžete definici sestavení otestovat dvěma způsoby:
- Pokud chcete aktivovat automatické sestavení, zkontrolujte v týmovém projektu nějaký obsah.
- Zařadit sestavení do fronty ručně.
Ruční přidání sestavení do fronty
V okně Team Explorer klikněte pravým tlačítkem na definici sestavení a potom klikněte na Queue New Build (Zařadit nové sestavení do fronty).
V dialogovém okně Queue Build (Sestavení fronty) zkontrolujte vlastnosti sestavení a potom klikněte na Queue (Fronta).
Pokud chcete zkontrolovat průběh a výsledek sestavení bez ohledu na to, jestli se aktivovalo ručně nebo automaticky, poklikejte v okně Team Exploreru na definici sestavení. Otevře se karta Průzkumníka sestavení .
Tady můžete řešit potíže s neúspěšnými sestaveními. Pokud dvakrát kliknete na jednotlivé sestavení, můžete zobrazit souhrnné informace a prokliknout se k podrobným souborům protokolu.
Tyto informace můžete použít k řešení potíží s neúspěšnými sestaveními a řešení případných problémů před pokusem o další sestavení.
Poznámka
Sestavení, která spouští logiku nasazení, pravděpodobně selžou, dokud serveru sestavení neudělíte všechna oprávnění požadovaná v cílovém prostředí. Další informace najdete v tématu Konfigurace oprávnění pro nasazení týmového sestavení.
Monitorování procesu sestavení
TFS poskytuje širokou škálu funkcí, které vám pomůžou monitorovat proces sestavení. TFS vám například může poslat e-mail nebo zobrazit upozornění v oznamovací oblasti hlavního panelu, když se sestavení dokončí. Další informace najdete v tématu Spuštění a monitorování sestavení.
Závěr
Toto téma popisuje, jak vytvořit definici sestavení v sadě TFS. Definice sestavení je nakonfigurovaná pro CI, takže proces sestavení se spustí vždy, když vývojář zkontroluje obsah týmového projektu. Definice sestavení spustí vlastní soubor projektu MSBuild pro nasazení webových balíčků a databázových skriptů do prostředí cílového serveru.
Aby bylo automatizované nasazení v rámci procesu sestavení úspěšné, musíte účtu služby sestavení na cílových webových serverech a cílovém databázovém serveru udělit příslušná oprávnění. Poslední téma v tomto kurzu Konfigurace oprávnění pro nasazení týmového sestavení popisuje, jak identifikovat a nakonfigurovat oprávnění požadovaná pro automatizované nasazení ze serveru team buildu.
Další čtení
Další informace o vytváření definic sestavení najdete v tématech Vytvoření základní definice sestavení a Definování procesu sestavení. Další pokyny k řazení sestavení do fronty najdete v tématu Vytvoření fronty sestavení.