eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingCruiseControl.NET a numer builda › Re: CruiseControl.NET a numer builda
  • Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!newsfeed.neostrada.pl!
    atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail
    From: tsharny <t...@w...pl>
    Newsgroups: pl.comp.programming
    Subject: Re: CruiseControl.NET a numer builda
    Date: Thu, 23 Apr 2009 18:20:01 +0200
    Organization: TP - http://www.tp.pl/
    Lines: 66
    Message-ID: <gsq4jq$5pc$1@atlantis.news.neostrada.pl>
    References: <gsik09$o8c$1@atlantis.news.neostrada.pl>
    <gskqhv$31p$1@atlantis.news.neostrada.pl>
    <RmCHl.65406$8w1.56773@newsfe15.ams2>
    NNTP-Posting-Host: aand196.neoplus.adsl.tpnet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: atlantis.news.neostrada.pl 1240503738 5932 83.5.85.196 (23 Apr 2009 16:22:18
    GMT)
    X-Complaints-To: u...@n...neostrada.pl
    NNTP-Posting-Date: Thu, 23 Apr 2009 16:22:18 +0000 (UTC)
    User-Agent: Thunderbird 2.0.0.21 (Windows/20090302)
    In-Reply-To: <RmCHl.65406$8w1.56773@newsfe15.ams2>
    Xref: news-archive.icm.edu.pl pl.comp.programming:181660
    [ ukryj 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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: