-
1. Data: 2009-04-20 19:53:42
Temat: CruiseControl.NET a numer builda
Od: tsharny <t...@w...pl>
Witam,
mam pewien problem, mianowicie jak z poziomu CruiseControl.NET zapisać
do pliku tekstowego numer ostatniego poprawnie przeprowadzonego builda.
pozdrawiam
tsharny
-
2. Data: 2009-04-21 15:57:48
Temat: Re: CruiseControl.NET a numer builda
Od: tsharny <t...@w...pl>
tsharny pisze:
> Witam,
> mam pewien problem, mianowicie jak z poziomu CruiseControl.NET zapisać
> do pliku tekstowego numer ostatniego poprawnie przeprowadzonego builda.
>
> pozdrawiam
> tsharny
Już nieaktualne, poradziłem sobie :)
pozdrawiam
tsharny
-
3. Data: 2009-04-22 10:32:16
Temat: Re: CruiseControl.NET a numer builda
Od: zymen <z...@d...pl>
tsharny pisze:
> tsharny pisze:
>> Witam,
>> mam pewien problem, mianowicie jak z poziomu CruiseControl.NET zapisać
>> do pliku tekstowego numer ostatniego poprawnie przeprowadzonego builda.
>>
>> pozdrawiam
>> tsharny
>
> Już nieaktualne, poradziłem sobie :)
>
> pozdrawiam
> tsharny
To napisz kolego jak, innym też się przyda :-)
pozdrawiam,
-
4. Data: 2009-04-23 16:20:01
Temat: Re: CruiseControl.NET a numer builda
Od: tsharny <t...@w...pl>
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