-
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
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "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)
Najnowsze wątki
- 2025-05-08 Lublin => Delphi Programmer <=
- 2025-05-08 Lublin => Programista Delphi <=
- 2025-05-08 Łódź => Mainframe (z/OS, Assembler) Developer <=
- 2025-05-08 Warszawa => Senior Node.js Developer (doświadczenie z framework Nest.
- 2025-05-07 Wielki smog w Watykanie
- 2025-05-07 Polscy czołgiści najlepsi w międzynarodowych zawodach na Łotwie!!!
- 2025-05-07 Znaki wewnętrzne
- 2025-05-07 Czujnik nacisku
- 2025-05-07 Wielki smog w Watykanie Nadal palą węglem w piecach
- 2025-05-07 Kraków => Business Development Manager - Network and Network Security
- 2025-05-07 Białystok => Team Lead Data Engineer (obszar Snowflake) <=
- 2025-05-07 Białystok => Team Lead Data Engineer (Snowflake) <=
- 2025-05-07 Warszawa => IT Recruiter <=
- 2025-05-07 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-05-07 Szczecin => Key Account Manager IT <=