Automatizálása összeszerelés és ellenőrzés a projekt verziók

Automatizálása összeszerelés és ellenőrzés a projekt verziók

Mit csinál.

A fejlesztés alatt, programozók egy csoportja, egy közös feladat, hogy létrejöjjön a következő változata a projekt, a további vizsgálatok ez a verzió, majd újra összeszerelését, stb Mi lenne összegyűjteni egy másik változata, aki felelős az összeállítás lesz, hogy a legújabb verzióját a fájlt, hogy növelje a verziószámot, építeni a projekt, és ha minden jól megy próbára egy bizonyos helyen kész fájlt vagy fájlokat. Általános szabály, hogy fenn kell tartanunk a változat történetében. Meg kell telepíteni Delphi könyvtárak - illetve az átmenet egy új változata a Delphi vagy a könyvtárak is okozhat sok problémát: építeni az új verzió lehet használhatatlan, és visszatér egy régebbi változata Delphi, stb







Általában ez a történet arról szól, hogy hogyan lehet automatizálni a folyamat az összeszerelés és a küldő változatban.

Hol és hogyan kell építeni a projekt.

Azt szeretnénk, hogy foglaljon egyszerre, az alábbi receptek dolgozni Delphi 6 (Update1, Update2).

Ha beszélünk automata összeszerelés során fogja használni a parancssorban. A szokásos Delphi két programot, hogy lehet használni, hogy összegyűjti projektek: dcc32 és tenni. Mindkettő az úton $ Delphi \ Bin.

DCC32 gyűjt egy projekt fájl passed parancssorban. A többi paraméter (könyvtár utak, fordítási opciókat, stb) is meg lehet adni a parancssorban vagy egy fájlt a dcc32.cfg $ Delphi \ Bin.

Tedd gyűjti össze a projekt meghatározott make-fájlt (sőt, ő következetesen hívja dcc32 számukra). Sőt, a sima szöveges fájl, akkor kényelmesen szerkeszteni az utat a könyvtár, valamint a lehetőségek összeállításához.

Tehát hozz létre egy könyvtárat, ahol a fájlok találhatók. például

Dekódolja: Delphi + frissítés 6 2 1 + RTL frissítés.

Másolás Delphi a megfelelő könyvtárban ugyanabban a könyvtárban az alábbi fájlokat:
BIN \ brc32.exe
BIN \ brcc32.exe
BIN \ dcc32.cfg
BIN \ DCC32.EXE
BIN \ lnkdfm60.dll
BIN \ make.exe
BIN \ rlink32.dll
BIN \ rw32core.dll
FORRÁS \ *. *

Összesen mintegy 30M, és elvileg elég, de az egyszerűség kedvéért és a sebesség is másolja a könyvtár «BEHOZATALAIRA» és «LIB». Kiderült körül 110M, de akik most foglalkozik ilyen méretekkel? Továbbra is rögzíteni dcc32.cfg file:
-aWinTypes = Windows; WinProcs = Windows; DbiProcs = BDE; DbiTypes = BDE; DbiErrs = BDE
-uC: \ Delphi \ D6U2RTL1 \ Lib; C: \ Delphi \ D6U2Rtl1 \ Bin
-IC: \ Delphi \ D6U2RTL1 \ Lib

Mindez lehet írni a lemezre, és mindig a rendszer kiépítése a projekt Delphi 5 percig bármilyen számítógépen.

Delphi létrehoz egy projekt összeállításához a mi fordító: Delphi-New Applisation. Majd tárolja a C: \ Delphi \ testvér \ testVer.dpr. Ott is tartani a projekt csoport fájlt (pl Project Manager - «Save Prgect csoport»). Most jobb sort a fájl testver.bpg

Mi lefordítani a projekt:

Tehát, ha te mindent helyesen, meg kellett kapnia Testver.exe

illemtudás

Nem szeretem, ha az összes fájlt egy kupacban, és így egy kicsit modernizáló könyvtár struktúra -sozdadim külön mappa forráskódot, lefordított bináris és modulok. Illetve FORRÁS, DCU, BIN. C: \ Delphi \ testvér \ BIN
C: \ Delphi \ testvér \ DCU
C: \ Delphi \ testvér \ FORRÁS \






C: \ Delphi \ testvér \ FORRÁS \ TestVer.bpg
C: \ Delphi \ testvér \ FORRÁS \ TestVer.dpr
C: \ Delphi \ testvér \ FORRÁS \ TestVer.res
C: \ Delphi \ testvér \ FORRÁS \ Unit1.dfm
C: \ Delphi \ testvér \ FORRÁS \ Unit1.pas

= EXE kimeneti könyvtár
# -I

= Tartalmazza könyvtárak
# -N

= DCU kimeneti könyvtár
# -W = Output figyelmeztető üzenetek
# -Q = Csendes fordításkor
# -CG = GUI megcélzott
DCC = $ (ROOT) \ bin \ dcc32.exe $ ** -B -e $ (BIN) -n $ (DCU) -u $ (LIB) -w -q -CG

TestVer.exe: $ (ProjectPath) \ Source \ TestVer.dpr
cd $ (ProjectPath) \ Source
$ (DCC)

Most lehet gyűjteni:

Összejönni további könyvtárakra.

Kezdésként nézzük információkat tartalmazza a fájl verzióját a projektben, és megjeleníti azt. A Delphi, hajtsa végre a következő Project-beállításai Amikor közé ezt az opciót, Delphi automatikusan generál összeállított erőforrás kiterjesztésű fájl «res». Ha megnézzük a projekt fájl (TestVer.dpr), láthatjuk a fordító irányelv, amely megmondja a fordítónak, hogy a csatlakoztatni kívánt fájl nevét, a projekt és bővítése «res».

Az információk megjelenítéséhez, azt fogja használni a könyvtárat Jedi Code Library. bár ez nem számít (sokáig szoktam RXLib, de változnak az idők ...). Forrásai a könyvtár, én csak másoljuk a C: \ Delphi \ D6U2RTL \ Lib_AddOn \ JCL. Most a szabályok kissé forrásokból (Source1.rar) írj egy eseménykezelő FormCreate: // Hiányos
felhasználások
JclFileUtils;

A figyelmes olvasó már észrevette, hogy a make fájl már használatban változó LIB. TestVer.bpg kicsit módosítani fájlt is meg lehet adni a könyvtárak LIBADDON = C: \ Delphi \ D6U2RTL1 \ Lib_AddOn
LIB = C: \ Delphi \ D6U2RTL1 \ Lib; $ (LIBADDON) \ JCL

Ezért módosításával LIB változó, akkor könnyen csatlakoztathatja az új könyvtár.

Összeállítása res fájlt brcc32

Minden tökéletes, a Delphi IDE, akkor már kezeli az információt a forrás fájlt. De hogyan lehet létrehozni egy fájlt anélkül, Delphi IDE? Mert brcc32 segédprogramot. Ezzel az eszközzel akkor össze a forrás fájlokat. Adok egy példát, amely remélem, minden világos lesz. Tehát hozz létre egy fájlt TestVer.rc: MAINICON ICON ir.ico
1 versionInfo
FILEVERSION 1,0,0,2
PRODUCTVERSION 1,0,0,2
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEOS VOS__WINDOWS32
FILETYPE VFT_APP

BLOCK "VarFileInfo"
ÉRTÉK "Translation", 1049 1251
>

Ennek eredményeként, akkor kap TestVer.res fájlt.

= EXE kimeneti könyvtár
# -I

= Tartalmazza könyvtárak
# -N

= DCU kimeneti könyvtár
# -W = Output figyelmeztető üzenetek
# -Q = Csendes fordításkor
# -CG = GUI megcélzott
DCC = $ (ROOT) \ bin \ dcc32.exe $ ** -B -e $ (BIN) -n $ (DCU) -u $ (LIB) -w -q -CG
BRCC = $ (ROOT) \ bin \ brcc32.exe

TestVer.exe: $ (PROJECTPATH) \ Source \ TestVer.dpr
cd $ (PROJECTPATH) \ Source
$ (BRCC) $ *
$ (DCC)

Automatikus váltás a verziószámot az rc fájlban

Ehhez használja a programot írta egy bizonyos Chris Morris (Incverrc.rar). Utyanul I CodeCentral meg, és talán még mindig ott található. A program használatához nagyon egyszerű - meg kell paraméterként adja meg a nevét az rc fájlt. Például, mivel

Meghatározó fájl verzióját kötegelt fájlban

Most lehet írni egy batch fájlt, amely automatikusan növeli a verziószámot és építeni a projekt. De szeretném, hogy a parancs fájlt képes volt meghatározni a verziószámot a keletkező projekt, például a csomagolás a projekt forrásai az archívumba ezt a számot. Egyszerűbb módja, mint írni egy kis programot, mert nem találtam. Tehát ExeVer programot - kijelzők a standard kimenetre a formázott verziószámot. Állítsa össze a kívánt JCL és rxLib. Példák a munkaprogram alábbi: C: \ Delphi \ ExeVer> ExeVer.exe C: \ Delphi \ testvér \ Bin \ TestVer.exe% J.% I.% R.% B
1.0.0.2

C: \ Delphi \ ExeVer> ExeVer.exe C: \ Delphi \ testvér \ Bin \ TestVer.exe% J-% I-% 2R-% 3B
1-0-00-002

C: \ Delphi \ ExeVer> ExeVer.exe C: \ Delphi \ testvér \ Bin \ TestVer.exe% 3J
001

gyűjtemény algoritmus

Mindent meg fogunk tenni az alábbi algoritmust.

echo - VSS. hogy a legújabb verziójú fájlt
rem ------------------------------------------------- ---------------
echo - VSS. CheckOut% NAMEPROJECT% .rc
echo -. a verziószámot% NAMEPROJECT% .rc
C: \ Delphi \ Incverrc \ IncVerrc.exe -f% NAMEPROJECT% .rc
rem ------------------------------------------------- ---------------
echo - hogy: kezd gyűjteni projekt

% LEGYEN% -f% NAMEPROJECT% .bpg>. \ Bin \ Out.txt

ha errorlevel 1 goto endError

echo - teszi: Exe sikeresen megtörtént
rem visszatérő verzió információ
echo - VSS. CheckIn% NAMEPROJECT% .rc

echo rar egy -r -s -ep1 -m5 -x * .scc. \ Archiv \% NAMEPROJECT% _ %% %% verBuild. rar. \ Source \ *. * >> t $$. bat
visszajelzésnek
t $$. bat / wait
del t $$. bat
goto End

endError
rem ------------ Hiba történt a válogatás ------------------

echo - VSS. undoCheckOut% PROJECTNAME% .RC
echo.
echo ERROR cm. out.txt
szünet
cd. \ Bin

következtetés

alkalmazások