Delphi Build Automatyzacja i ciągła Integracja możliwe tylko przy użyciu MS Build?

Chcę zaimplementować system ciągłego testowania jednostek, coś, co słyszałem o nazwie "smoketest" lub "tinderbox", (serwer budowania, który wykonuje czyste kontrole wersji i pełne Kompilacje systemu wszystkiego w danym repozytorium źródłowym lub projekcie), i coś w rodzaju" ciągłej integracji " dla małych zespołów, z Delphi.

Nie cierpię angażować się w komercyjny produkt "build server" i mam nadzieję, że mogę zrobić wiele z tego tylko z obsługą MS-Build, która jest zbudowana do delphi.

Szukam zasobów, pomysłów i miejsca na start. Nie wiem jak wykorzystać MS Build do tego celu. Steve Trevethen ma post na blogu, który prowadzi do małej dyskusji na temat starego budowania linii poleceń dcc32, a niektóre komentarze wspominają o ms-build, który jest tutaj od delphi 2007. Używam Delphi 2010. Szukam wskazówek, wglądu i doświadczeń, które mi powiedzą, czy jest to rozsądna droga, aby iść w dół, a jeśli nie, w którą stronę powinienem iść zamiast tego?

Znalazłem, że możesz nadpisać Katalog wyjściowy Unit (DCU) i EXE z linii poleceń msbuild za pomocą /p: DCU_DcuOutput=. Zauważ, że spojrzałem na XML w moich plikach DPROJ, aby dowiedzieć się, jak nadpisać rzeczy.

Jednak robi tylko make, a nie build, I / T: rebuild nie działa (edit: yes it does. działa dobrze na plikach DPROJ, ale nie na GroupProjects.)

Chciałbym, żeby gdzieś było więcej dokumentacji MSBuild-with-Delphi? MS-Build help in Dokumentacja produktu "Rad Studio 2010" pokazuje jedną lub dwie rzeczy na temat MS-Build, ale jest naprawdę szkicowa i niekompletna.

Podobne pytania:

MSBuild command lines

Author: Community, 2010-02-22

3 answers

Delphi 2010 używa MSBuild jako głównego silnika kompilacji. Oznacza to, że IDE i linia poleceń robią dokładnie to samo. Oznacza to również, że możesz łatwo budować istniejące projekty za pomocą wiersza poleceń. W zasadzie, my w Delphi robimy to dokładnie cały czas. Nie musisz się martwić o przełączniki dla samego kompilatora -- plik DPROJ utworzony przez IDE will

W menu Start znajduje się linia poleceń do używania MSBuild z istniejącym projektem Delphi. Ustawia środowisko poprawnie tak, że można po prostu wywołać:

Msbuild myproject.dproj

Możesz również wywoływać określone konfiguracje budowania z wiersza poleceń, używając IDE do łatwego tworzenia wspomnianych konfiguracji przy użyciu parametrów wiersza poleceń dla MSBuild.

Jeśli chcesz stworzyć środowisko samodzielnie, możesz uruchomić rsvars.Bat plik wsadowy do Ustawienia rzeczy. Plik ten można znaleźć w katalogu \bin i powinien być dostępny z domyślnego wiersza poleceń.

The plik zawiera:

@SET BDS=<your BDS directory>
@SET BDSCOMMONDIR=C:\Users\Public\Documents\RAD Studio\7.0
@SET FrameworkDir=C:\Windows\Microsoft.NET\Framework\v2.0.50727
@SET FrameworkVersion=v2.0.50727
@SET FrameworkSDKDir=
@SET PATH=%FrameworkDir%;%FrameworkSDKDir%;%PATH%
@SET LANGDIR=EN

Tak więc, jeśli chcesz stworzyć własną kompilację ciągłej integracji, możesz łatwo zarządzać kompilacją Delphi za pomocą MSBuild.

 15
Author: Nick Hodges,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-22 19:14:19

Dproj i groupproj są plikami msbuild i możesz zajrzeć do ich wnętrza. Pozostałe części informacji znajdują się w ścieżce instalacji msbuild (C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727). znajdziesz tam kilka Borlandów.*.pliki celów.

Wewnątrz skryptów msbuild można zobaczyć różne cele nazwane z . Na przykład plik Grupowy zawiera cele Make, Clean I Build, które można określić parametrem / T. To samo dotyczy dproj pliki. pliki dproj mają również odbudować cel. Czyści, a potem buduje. Jeśli chcesz mieć taki sam efekt dla pliku groupfile, możesz określić dwa cele: / t: Clean; Build

Znajdziesz również wiele parametrów, które możesz ustawić za pomocą /p. Jak na przykład Configuration, aby określić konfigurację lub DCC_Quiet, aby poinstruować dcc32, aby przestał wypisywać bezużyteczne białe spacje.

Więc wykonanie kompilacji z konfiguracją Release z linii poleceń jest takie polecenie:

msbuild mygroup.groupproj /p:Configuration=Release /t:Build

Disclaimer: przejrzałem pliki MSBuild Delphi 2007. Późniejsze wersje Delphi mogły zmienić nazwę celów lub parametrów. Wystarczy zajrzeć do skryptów msbuild, aby dowiedzieć się, który jest który.

 11
Author: Lars Truijens,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-22 19:49:12

Nie jestem pewien, czy tego potrzebujesz, ale mam CruiseControl.NET Konfiguracja do wykonywania ciągłej integracji - i testów DUnit-dla Delphi 2009. CCNET ma określony zestaw zadań dla MSBuild i poza kilkoma problemami z konfiguracją działa idealnie dla mnie.

Mogę ci powiedzieć, co musiałem zrobić, aby to działało, jeśli potrzebujesz.

Mark

 4
Author: mmmm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-22 21:46:09