Sokáig nem jutottam hozzá, hogy tovább folytassam a TFS szerver “simogatását”. Most végre volt egy kis idõm, így nekikezdtem végre beállítani a központi szerveren futó Build-et.

Telepítés

Már egy ideje mûködõ szerverünket átnézve hamar megállapítható volt, hogy a szerverre annó nem telepítettem a Build szolgáltatást. Nosza rajta telepítsük a szükséges dolgokat!
A Team Server CD Build könyvtárában található a szükséges komponens telepítõje, így a CD-t behelyezve az itt található setup.exe-t kell elindítani. A szokott telepítési eljárást követõen (Next-Next-Finish) megkapjuk a telepített komponenst.

Fontos!
A Build komponenst nem vagyunk kötelesek a TFS szerverre telepíteni, a modult bármelyik gépre telepíthetjük, amelyen a fordításokat el kívánjuk végezni.

Build létrehozása

A telepítést követõen a további feladatokat már a saját munkaállomásunknál is folytathatjuk. Indítsuk el a Team Foundation Explorert és navigáljunk a Build elemhez.

Team Foundation Build

Az elemen válasszuk – a jobb egérgomb megnyomása után megjelent menübõl – a New Team Build Type… menüpontot. Ennek hatására elindul a New Team Build Type Wizard, aminek segítségével létrehozhatjuk a Build Service számára szóló fordítási utasítást. A létrehozás során az alábbi kérdésekre kell választ adnunk:

  • Köszöntés (Welcome)
    Eljárás neve (Name), amivel késõbb hivatkozunk rá. Célszerû érthetõ, beszédes, de rövid nevet alkalmazni
    A megjegyzés (Descriptions) mezõben részletesen leírhatjuk mire is szolgál ez a fordítási eljrás.
  • Választás (Selections)
    Ebben a lépésben ki kell választanunk, hogy mely a projekthez definiált munkaterület (Workspaces) kell az alkalmazás fordítása során alkalmazni.
    Ezt követõen ki kell választanunk a lefordítandó megoldásokat (Solutions), amelyeket kezelni kívánunk.
  • Fordítási konfiguráció (Configurations)
    Ahogy az a fordításoknál már megszokott ki kell választanunk, hogy az adott megoldást milyen fordítási konfigurációval kell fordítani (Configuration/Platform). Fontos, hogy bár tetszõlegesen választhatjuk ki a számunkra szükséges beállítást, de ennek valóban szerepelnie kell az általunk fordítani kívánt projektben.
  • Fordítási útvonalak (Location)
    A következõ lépésben meg kell határoznunk azt a gépet (Machine), melyen a fordítást el kívánjuk végezni (ezen elérhetõ kell legyen a Build szolgáltatás).
    Ezt követõen meg kell határoznunk, hogy a fordítást mely könyvtárban lehet a kiválasztott gépen elvégezni Build directory on selected machine. Az útvonal tetszõlegesen beírandó, de a kiválasztott gépen léteznie kell. A megadott útvonalon a Build Type nevû könyvtár lesz létrehozva.
    A fordítás végeredményét a Drop Location mezõbe megadott útvonalra másolj a át a rendszer. E mezõben az útvonalat \\szerver\megosztás formában kell megadni.
  • Options
    A fordítás elvégzését követõen elõírhatjuk, hogy a rendszer kötelezõen elvégezze a különbözõ tesztelési eljárásokat (Run Test, Perform Code). Amennyiben ezek bármelyikét elõírjuk, akkor a fordítást követõen ezek is elvégzésre kerülnek.
  • Summary
    A beállításokat összeforglalja a rendszer és amennyiben ezek megfelelõek, akkor a Finish megnyomására a szükséges állományok létrehozásra kerülnek.

Az így létrehozott fordítást bármikor elindíthatjuk és a fordítással megbízott gép(en) ez elvégzésre kerül. Minden központi fordítás automatikusan logolásra kerül, melyet a szükséges helyekrõl elérhetünk (lekérdezések, kimutatások), vagy akár közvetlenül megnyithatunk a Drop Location mezõben megadott útvonalon.

Ütemezés

Miért is végeztük el mindezt, hisz fordítani mindenki tud! Ez igaz, de egy több fejlesztõ által folyamatosan változtatott, fejlesztett kódban szükség van arra, hogy egy adott idõpillanatban a központi kódtárba meglévõ – a számos résztvevõ által készített – kódot összefordítsuk és publikáljuk a tesztelõk felé. Ennek megoldása, hogy a már létrehozott Build-eket ütemezetten futtassuk. Erre szolgál a TFSBUILD utasítás, amit a feladataink végett a START kapcsolóval kell alkalmaznunk!

Microsoft (R) TfsBuild Version 8.0.0.0
for Microsoft (R) Visual Studio 2005 Team System
(C) Copyright 2006 Microsoft Corporation. All rights reserved.
This command starts a new build on the build machine.
Syntax -
TfsBuild start <TeamFoundationServer> <TeamProject> <BuildType> [/m:<machine>] [
/d:<directory>]
TeamFoundationServer          The Team Foundation Server to use for the build
TeamProject                   The team project to use for the build
BuildType                     The build type to use for the build
/m[achine]:<machine>          The machine where the build process will take
                              place. If this option is not specified, the
                              machine provided in the build type will be used.
/d[irectory]:<directory>      The directory on the build machine where the
                              build will be performed. If this option is not
                              specified, the build directory specified in the
                              build type will be used.

Annak érdekében hogy az ütemezett fordítást beállíthassuk az alábbiakat végezzük el:

  1. Lépjünk fel az ütemezett futtatást indító gépre (pl. a TFS szerverre)
  2. Hozzunk létre egy – majd az ütemezéshez alkalmazható – CMD fájlt
  3. Az operációs rendszer ütemezõ szolgáltatásának segítségével ütemezzük a számunkra szükséges módon a fordítás megkezdését

Amennyiben a Projekt vagy Build nevében szóköz is szerepel, akkor az adott nevet idézõjelek között adjuk meg!

Fordítás eredménye, Automatikus értesítés

Minden központi fordítás automatikusan logolásra kerül, melyet a szükséges helyekrõl elérhetünk (lekérdezések, kimutatások), vagy akár közvetlenül megnyithatunk a Drop Location mezõben megadott útvonalon.

Annak érdekében, hogy a fordítás eredményérõl automatikusan értesítést kapjunk, ajánlott az érintett Team Project-hez az ALERT funkciók között a BUILD szekcióhoz az email-ban értesítendõk körének megadása.

TFS Alert 1

TFS Alert Setup

E beállítás mellett a rendszer egy tájékoztató e-mail-t küld a fordítás eredményérõl.

TFS Build E-mail

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

*