-
Data: 2009-04-23 16:20:01
Temat: Re: CruiseControl.NET a numer builda
Od: tsharny <t...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]zymen pisze:
> To napisz kolego jak, innym też się przyda :-)
>
> pozdrawiam,
A proszę bardzo :)
Jako, że korzystam z CruiseControl.NET + MSBuild to całość zawarłem w
tym ostatnim.
Najpierw określam, który plik ma zostać zmodyfikowany (w którym pliku
zapisuje numer builda).
<ItemGroup>
<PlikWersjiBuilda Include="$(RootPath)\NumerBuilda.txt"/>
</ItemGroup>
Następnie robię zadanie, które będzie modyfikować ten plik:
<Target Name="ZapiszNrBuilda" DependsOn="PobierzNumerBuildaZPliku">
<CreateProperty Value="$(CCNetLabel)" Condition="'$(CCNetLabel)' !=
''">
<Output PropertyName="NumerBuildaDoZapisu"
TaskParameter="ValueSetByTask" />
</CreateProperty>
<CreateProperty Value="$(OdczytanyNumerBuilda)"
Condition="'$(CCNetLabel)' == ''">
<Output PropertyName="NumerBuildaDoZapisu"
TaskParameter="ValueSetByTask" />
</CreateProperty>
<FileUpdate Files="@(PlikWersjiBuilda)" Regex="(\d)"
ReplacementText="$(NumerBuildaDoZapisu)"/>
<Message Text="Nowy numer builda: $(NumerBuildaDoZapisu) "
Importance="High" />
<Beep/>
</Target>
<Target Name="PobierzNumerBuildaZPliku">
Tutaj odczytujemy numer builda z pliku przed modyfikacją do
$(OdczytanyNumerBuilda).
</Target>
CCNetLabel - numer builda pobierany z CruiseControl.NET - będzie
dostępny tylko podczas wykonywania integracji przez CC.NET.
OdczytanyNumerBuilda - przed wykonaniem zadania ZapiszNrBuilda jest
wykonywane zadanie PobierzNumerBuildaZPliku i zapisywany jest do tej
właściwości.
Podczas wykonywania zadania tworzony jest NumerBuildaDoZapisu.
Sprawdzany jest warunek: jeśli CCNetLabel jest pusty to pod numer builda
podstawiamy wartość wcześniej pobraną z pliku, natomiast jeśli wartość
CCNetLabel nie jest pusta to właśnie tą wartość podstawiamy jako
NumerBuildaDoZapisu. Następnie za pomocą FileUpdate ta wartość jest
zapisywana do pliku.
Sprawdzenie czy CCNetLabel nie jest puste itd. jest bardzo ważne,
ponieważ jeśli odpalimy builda na maszynie klienckiej, gdzie nie ma
środowiska do ciągłej integracji wtedy byśmy otrzymali błąd, że
CCNetLabel jest pusty i byśmy nic nie skompilowali.
Mam nadzieję, że jest to jasne i komuś się przyda :)
pozdrawiam
tsharny
Najnowsze wątki z tej grupy
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
Najnowsze wątki
- 2025-04-04 Prezydium Sejmu Tuskiego orzekło: Poseł KO mecenas Roman Giertych NIE jest mordercą (w żadnym sensie tego słowa?)
- 2025-04-04 Reset komóry
- 2025-04-04 Lublin => JavaScript / Node / Fullstack Developer <=
- 2025-04-04 Zielonka => Key Account Manager IT <=
- 2025-04-04 Warszawa => Ekspert IT (obszar systemów sieciowych) <=
- 2025-04-04 Warszawa => Mid/Senior IT Recruiter <=
- 2025-04-04 Białystok => NMS System Administrator <=
- 2025-04-04 Warszawa => Spedytor Międzynarodowy <=
- 2025-04-04 Warszawa => Generative AI Engineer <=
- 2025-04-04 Warszawa => Gen AI Engineer <=
- 2025-04-04 Warszawa => Senior Programmer C <=
- 2025-04-04 Jak odróżnić myjki wibrujące od ultradźwiękowych.
- 2025-04-03 Ledy na wyłączniku czasowym błyskają
- 2025-04-03 Mapy w android-auto
- 2025-04-03 Czy [polityka] wolno wyzywać od idiotów ale nie od morderców? Czy posłowi wolno mniej niż obywatelowi?