Webová aplikace uchovává veškerá nastavení, uživatelské účty, projekty. K serveru se připojují jak vývojáři (pomocí webového prohlížeče nebo plug-inu v IDE), administrátoři, tak tzv. build agents - tedy sestavovací agenti (stanice či dedikované servery), kteří provádějí vlastní sestavování a spouštění testů. TeamCity tedy nabízí dobrou škálovatelnost z hlediska výkonu.
Webová aplikace TeamCity je v podstatě základnou celého týmu, odrazovým můstkem, domovskou stránkou prohlížečů vývojářů. Poskytuje spoustu přehledových stránek, statistik, výstupů build skriptů, inspekcí kódu a automatických testů. K dispozici je také testování pokrytí kódu a komfortní prohlížení změn v repozitáři VCS.
Delayed commit je velmi zajímavou vlastností, která je přístupná z plug-inu pro prostředí IDEA. Každý začínající programátor, který nedělal nikdy v týmu, je instruován (nebo to brzy zjistí sám - kolegové mu to dají nahlas najevo), aby nikdy do repozitáře nenahrával nefunkční verzi, která by program jakkoli narušila. Proto každý vývojář musí před provedeném commitu vše pečlivě otestovat (nejlépe spuštěním všech automatických testů). Jenže to vezme programátorovi dost času, především pokud se jedná o rozsáhlejší projekt, ve kterém testy mohou trvat i několik hodin.
Díky delayed commitu, jak již sám název napovídá, může programátor commit odložit až na dobu, kdy proběhnou úspěšně všechny testy. Tyto testy navíc díky TeamCity budou spouštěny na build hostech, tudíž může programátor klidně pokračovat v práci nebo jít domů. Nemusí očekávat druhý den brzy ráno telefonát od kolegy, kterému aplikace po updatu z repozitáře nefunguje, protože pokud by nějkterý z testů neuspěl, nejen že by nebyl proveden commit, ale vývojář by byl také informován (například e-mailem).
Po rozbalení jsem musel vytvořit adresář "logs", kam vestavěný webový kontejner Tomcat hodlal ukládat záznamy o běhu systému, a poté stačilo spustit dobře známý skript startup.sh. Ačkoli jsem se startu trošku obával (téměř 80 MB knihoven), byl svižný a systém byl ihned připraven k práci.
Uvítala mě obrazovka, která vyžadovala zadání licenčních klíčů. Pokud jste stáhli testovací (evalution) verzi, je potřeba zadat klíče, které vám firma JetBrains zaslala. Poté stačí vytvořit účet administrátora a účty jednotlivým uživatelům.
Doslova mě nadchl způsob, jakým můžete nainstalovat build agenty. Kliknete buď na Java WebStart odkaz nebo odkaz na instalátor pro systém Windows a aplikace se pomocí průvodce nainstaluje. K dispozici je také ZIP balík pro ruční instalaci. Build agent je software, který běží na pozadí (na serverech, na stanicích vývojářů nebo třeba i na PC firemní účetní) a který je systémem TeamCity pověřovám k vlastnímu sestavování. Čím je build agentů více, tím bude proces sestavování robustnější a (podle počtu projektů a zátěže) i rychlejší. Dalo by se to s nadsázkou přirovnat k BitTorrentu.
Po instalaci systému a agentů je nutné vytvořit nový projekt, nastavit cestu k repozitáři (Subversion, Preforce, CVS) a vytvořit build konfiguraci. TeamCity podporuje následující sestavovací systémy: Ant, Maven, IntelliJ IDEA projekty a inspekce, NAnt, MSBuild, MS Visual Studio 2003 a 2005 (Solution soubory). Díky velmi modulárním programům Maven, Ant nebo NAnt je možné sestavovat prakticky cokoli.
Konfigurace buildu je velmi přehledná, je potřeba nastavit cíle, proměnné, požadavky na build hosty (například potřebná verze JDK) a také triggery (spouště). Jsou to pravidla říkající, kdy se budou požadované akce provádět. Kromě časového nastavení (včetně relativního času od posledního provedení, které selhalo) je možné spouštět buildy po každé změně ve VCS.
Veliká síla produktu TeamCity je ve zobrazování přehledů - tedy výsledků buildů, inspekcí nebo čehokoli, co z Ant skriptů spouštíte (tvorba dokumentace atd.) Hezky jsou zpracované také právě probíhající akce, kdy prohlížeč aktualizuje progress bar a zobrazuje aktuální cíl sestavení. TeamCity zachovává kompletní historii včetně všech hlášek, což je u velkých projektů spolu s historií VCS potřebné.
Z celé aplikace na mě po celou dobu dýchala moderna - vše je postaveno na AJAXu, všechny ovládací prvky na každé obrazovce jsou pečlivě rozmístěny, vzhled je jednoduchý a účelný. Také díky tomu je práce se systémem svižná - prakticky nepoznáte, že se nejedná o lokálně nainstalovaný program.
Shrnutí je nesmírně těžké - všechno to, co TeamCity umí si můžete s lehčími či těžšími obtížemi naskriptovat (nebo použít různé nástroje). Jenže to bude stát čas. A v případě, že byste požadovali distribuované sestavování, kvalitní přehledy a alespoň zpoloviny tak pohodlné ovládání, tak to bude stát opravdu spoustu času, který vývojové týmy obvykle nemají. A právě v těchto případech je TeamCity ideálním řešením.
Zajímavé bude také sledovat, zda-li firma JetBrains nabídne licence zdarma či dokonce on-line hosting pro open-source projekty podobně jako například firma Atlassian se svými produkty Jira či Confluence. U vývojového nástroje IntelliJ IDEA tak firma totiž již činí.
Recenzi vývojového prostředí IntelliJ IDEA 6.0 najdete v lednovém čísle LinuxEXPRESu. Rád bych poděkoval firmě JetBrains, zejména pracovníkům v sídle společnosti v Praze, kteří mi byli při recenzích obou produktů nápomocni.