Continuous Integration z ClickOnce



Podobne dokumenty
Zaawansowane aplikacje internetowe - laboratorium

Continuous Integration

Instalacja programu Warsztat 3 w sieci

Instrukcja instalacji systemu elektronicznego obiegu dokumentów - esoda.

Instalacja i konfiguracja SAS PC Files Server

7 Business Ship Control dla Symfonia Handel

Dokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć. Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->.

7 Business Ship Control dla Systemu Zarządzania Forte

Narzędzia podnoszące jakość procesu wytwarzania i wdrażania

Instrukcja laboratoryjna cz.3

Instalacja aplikacji

Instrukcja konfigurowania sieci WiFi w Akademii Leona Koźmioskiego dla telefonów komórkowych z systemem Bada

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Spis treści. FAQ: /PL Data: 30/06/2015. Instalacja polskiej wersji LOGO! Soft Comfort. 1 Pobranie pliku 2

4. Należy następnie zaakceptować postanowienia umowy licencyjnej i nacisnąć przycisk Next.

Załącznik 1 instrukcje instalacji

Instrukcja instalacji systemu

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

Instrukcja instalacji programu w sieci. Informacja o folderach

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

OpenGL Embedded Systems

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Dodatki. Dodatek A Octave. Język maszyn

Aktualizacja środowiska JAVA a SAS

Instrukcja instalacji oprogramowania dla środowiska Windows

Deployment w Visual Studio 2010

Pomoc dla systemu WordPress

Ewidencja Wyposażenia PL+

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux

5.1. MINIPOS MINIPOS. INSTALACJA ORAZ URUCHOMIENIE USŁUGI

1. System kontroli wersji Instalacja programu kontroli wersji CVS

Współpraca z platformą Emp@tia. dokumentacja techniczna

Instrukcja instalacji usługi Sygnity SmsService

Procedura wygenerowania paczki instalacyjnej oprogramowania F-Secure

INSTRUKCJA INSTALACJI SYSTEMU

Kopiowanie i instalowanie pliku w systemie Windows CE

Poradnik zetula.pl. Jak założyć konto na zetula.pl. i zabezpieczyć dane na swoim komputerze?

Instrukcja instalacji systemu

Instrukcja instalacji usługi Sygnity Service

5.2. Pierwsze kroki z bazami danych

Materiały wprowadzające. dr inż. Arkadiusz Chrobot

KANCELARYJNY SYSTEM PODATKOWY

Instrukcja instalacji usługi Sygnity Service

Wstęp. Skąd pobrać program do obsługi FTP? Logowanie

Instrukcja instalacji elektronicznego systemu obiegu dokumentów administracyjnych - esoda.

Połączenie VPN instalacja i zestawianie połączenia

Instalowanie VHOPE i plików biblioteki VHOPE

Sieciowa instalacja Sekafi 3 SQL

IBM SPSS Statistics - Essentials for Python: Instrukcje instalacji dla Windows

AKTUALIZACJA OPROGRAMOWANIA DO ROBOTA ODKURZAJĄCEGO KOBOLD

Zanim zaczniesz. Warto ustawić kartę sieciową naszego serwera.

Instalacja SAS 9.4 Foundation i SAS Enterprise Guide

INSTRUKCJA INSTALACJI PROGRAMU DIETA 6.0 I DIETA 6.D

G DATA TechPaper Aktualizacja rozwiązań G DATA Business do wersji 14.2

Pracownia internetowa w szkole ZASTOSOWANIA

Instrukcja instalacji usługi Sygnity SmsService

Unreal Engine 4 - Samsung Gear VR

Automatyczna instalacja oprogramowania.

System wspomagania pracy Administratora Bezpieczeostwa Informacji Instrukcja Administratora Wersja

Skrócona instrukcja korzystania z baz udostępnionych w Bibliotece SGH. na komputerach będących poza siecią SGH

System zdalnego dostępu (VPN) do sieci Wydziału Elektrycznego PW

Oprogramowanie Mobilne Instrukcja obsługi PSR 2010

Nagrywamy podcasty program Audacity

Spis treści. Spis treści Wstęp Instalacja nazwa.pl Instalacja Home.pl Edycja grafiki strony logo...

Instrukcja konfiguracji programu Fakt z modułem lanfakt

Jak skonfigurować klienta Mozilla Thunderbird?

INSTRUKCJA OTWIERANIA PLIKU DPT (data point table)

Przewodnik instalacji i rozpoczynania pracy. dla DataPage+ 2012

Jak stworzyć stronę WWW drużyny harcerskiej. dh Paweł Wnuk

Jak usunąć instalacji bazy danych Oracle z systemu Windows 2000

Ćwiczenia 9: Zarządzanie konfiguracją Zadania:

Instalacja oprogramowania ESI oraz konfiguracja

Przewodnik instalacji i rozpoczynania pracy. Dla DataPage+ 2013

Licencja SEE Electrical zabezpieczona kluczem lokalnym

Programowanie niskopoziomowe

Instrukcja instalacji certyfikatu w systemie Windows

Instalacja pakietu SAS 9.3 Audit, Performance and Measurement na platformie Windows

INSTALACJA PROGRAMU KS-ASW

Pracownia internetowa w każdej szkole (edycja jesień 2005)

mfaktura Instrukcja instalacji programu Ogólne informacje o programie biuro@matsol.pl

IBM SPSS Statistics Wersja 23. Konfigurowanie ułatwień dostępu

Problemy techniczne. Jak umieszczać pliki na serwerze FTP?

oprogramowania F-Secure

Kancelaria Prawna.WEB - POMOC

Poradnik korzystania z usługi FTP

Należy uruchomid program: Start-Wszystkie programy- Microsoft Office- Microsoft Office Access 2007

Instrukcja konfiguracji programu Fakt z modułem lanfakt

Twoja ulotka instrukcja obsługi programu

Instalacja i konfiguracja serwera IIS z FTP

Joomla! Instalacja. Pobierz pakiet instalacyjny. instalacji XAMPP

Pakiet Sokrates Instrukcja instalacji

Konfiguracja programu

Materiały dodatkowe. Raspberry Pi

Instrukcja instalacji Asystenta Hotline

Asystent Hotline Instrukcja instalacji

Transkrypt:

Continuous Integration z ClickOnce To, że Continuous Integration (z ang. ciągła integracja) to proces polegający na stałym, możliwie częstym konsolidowaniu (kompilacji, testowaniu, publikacji) wyników pracy programistycznej możesz przeczyta w moim artykule w Software Developers Journal 06/2007. Tekst ten jest również dostępny na stronie internetowej wydawnictwa. Opisałem w nim podstawowe kroki prowadzące do pełnego zastosowania procesu CI na przykładzie aplikacji webowej. Ostatni krok w dostarczeniu strony internetowej użytkownikowi koocowemu to zadanie często sprowadzające się do skopiowania wyników pracy do określonego folderu na serwerze WWW. W przypadku programu okienkowego trzeba się bardziej nagimnastykowad. Należy na przykład utworzyd program instalacyjny, który trzeba jakoś dostarczyd użytkownikowi. Technologią łączącą te dwa podejścia jest ClickOnce Deployment. Za pomocą ClickOnce można automatycznie opublikowad aplikację okienkowo na stronie WWW. Aplikacja taka może byd zainstalowana wprost ze strony internetowej. Podczas każdego startu aplikacja taka pamiętając skąd została zainstalowana sprawdzi czy dostępna jest nowa wersja i jeśli użytkownik sobie tego życzy zainstaluje ją. Aplikacja dystrybuowana poprzez ClickOnce uruchamiana jest domyślnie z ograniczonymi prawami (dotyczącymi na przykład dostępu do plików). Nie jest ona również instalowana w katalogu Program Files, ale dośd głęboko w prywatnym katalogu użytkownika, który dokonał instalacji. Jeśli odpowiada ci taka forma dystrybucji to warto postarad się żeby odbywała się ona automatycznie. Dobrym pomysłem (w pewnych okolicznościach) może byd zasada, że nowa wersja publikowana jest po każdym przekazaniu kodów do systemu kontroli wersji. Nic nie stoi na przeszkodzie by publikację poprzedzid dokładnymi testami albo/i wygenerowad dokumentacje. Dobre wprowadzenie znajduje się we wspomnianym już artykule. Teraz zajmiemy się tylko automatyczną publikacją poprzez ClickOnce. Tworzymy dowolną aplikację okienkową w Visual Studio. Nazwijmy ją ClickOnceHelloWorld. Aplikację taką można opublikowad wprost ze środowiska wybierając z menu Build->Publish ClickOnceHelloWorld tak jak to pokazano na rysunku 1.

Rysunek 1. Publkacja ClickOnce w VS2005 Powinniśmy mied zainstalowany serwer IIS który będzie stanowił platformę dla naszych publikacji. Po potwierdzeniu domyślnych ustawieo otwieramy przeglądarkę podając http://localhost/clickoncehelloworld/publish.htm Patrz rysunek 2.

Rysunek 2. Opublikowana strona Po wybraniu Install nasz świeżutki program zostanie zainstalowany na naszym komputerze. Prawda, że proste? Spróbujmy zautomatyzowad te kroki. Aby tego dokona musimy byd w stanie dokonad publikacji z poziomu znaku zachęty systemu operacyjnego (command line). Można to zrobi w bardzo prosty sposób. Msbuild /target:publish Voila! Pierwsza publikacja dokonana. Ale nie tak szybko. Pliki publikacji, które znajdują się w podkatalogu bin/debug/ ClickOnceHelloWorld/publish.htm muszą znaleźd się jeszcze na serwerze WWW. Można je tam skopiowad ręcznie. Niestety plik publish.htm nie jest tworzony automatycznie i brakuje numeracji wersji w podkatalogu ClickOnceHelloWorld. Ostatni problem łatwo rozwiążemy przekazując numer wersji poprzez parametr. msbuild /target:publish /p: ApplicationVersion=1.0.0.2 No tak, ale jak serwer CI będzie w stanie nada kolejny numer wersji naszej aplikacji? Jednym z rozwiązao jest nadanie jej numeru zgodnego z numerem rewizji na serwerze SVN. Dotarliśmy, więc do punktu, w którym musimy przygotowad sobie front robót. Po pierwsze tworzymy miejsce na naszą aplikację na serwerze SVN i przygotowujemy serwer CruiseControl.NET

(patrz wspomniany wcześniej artykuł z SDJ). Kiedy wszystko będzie już gotowe tworzymy skrypt msbuild, który przeprowadzi za nas cały proces integracji. Załóżmy że nasze repozytorium znajduje się pod tym adresem http://svnserver/svn/clickoncehelloworld/trunk w takim przypadku pierwsza wersja naszego skryptu msbuild będzie wyglądał następująco. <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <UsingTask AssemblyFile="lib\MSBuildCommunityTasks\MSBuild.Community.Tasks.dll" TaskName="MSBuild.Community.Tasks.Subversion.SvnInfo"></UsingTask> <PropertyGroup> <ApplicationVersion Condition=" '$(ApplicationVersion)' == '' ">1.0.0.</ApplicationVersion> <RevisionNumber Condition=" '$(RevisionNumber)' == '' ">0</RevisionNumber> <Target Name="Build"> <SvnInfo RepositoryPath=" http://svn-server/svn/clickoncehelloworld/trunk"> <Output TaskParameter="Revision" PropertyName="RevisionNumber" /> </SvnInfo> <MSBuild Targets="Publish" Projects="ClickOnceHelloWorld.sln" ContinueOnError="false" Properties="ApplicationVersion=$(ApplicationVersion)$(RevisionNumber)"/> </Target> </Project> Pierwszym krokiem jest import zadania SvnInfo z pakietu MSBuild Communitz Tasks (który zgodnie z wytycznymi z artykułu z SDJ umieszczamy w podkatalogu lib naszego rozwiązania (solucji). Deklarujemy zmienne ApplicationVersion i RevisionNumber, z których złożymy właściwy numer wersji naszej aplikacji. ApplicationVersion to domyślnie 1.0.0. pozostaje dowiedzied się, jaki numer ma ostatnia rewizja. W celu Build posłużymy się zadaniem SvnInfo który za pomocą parametru Revision wypełni naszą zmienną RevisionNumber. Kiedy wszystko jest gotowe wystarczy wywoład MSBuild z celem Publish i odpowiednimi parametrami. Wystarczy spojrzed do katalogu ClickOnceHelloWorld.publish by przekonad się, że nasza publikacja jest zaopatrzona we właściwe numery wersji i jest gotowa do umieszczenia na serwerze. Do zrealizowania tego zadania użyjemy zadania Copy, wcześniej deklarując jednak ścieżkę docelową w części PropertyGroup <DeploymentFolder>c:\Inetpub\wwwroot\ClickOnceHelloWorld</DeploymentFolder> Oraz nową ItemGroup z definicją zbioru plików do skopiowania <ItemGroup> <DeploymentSourceFiles Include="ClickOnceHelloWorld\bin\$(Configuration)\ClickOnceHelloWorld.publish\**\*.*" /> </ItemGroup> Po czym uzypełniamy cel build o kopiowanie plików. <Copy SourceFiles="@(DeploymentSourceFiles)" DestinationFiles="@(DeploymentSourceFiles- >'$(DeploymentFolder)\%(RecursiveDir)%(Filename)%(Extension)')"/> Zmieomy teraz coś w kodzie naszego programu i umieśdmy nowa wersję na serwerze SVN. Po czym zabawmy się w serwer CI i wystartujmy nasz plik msbuil. Ponowne uruchomienie

CliclOnceHelloWorld poprzez menu start. Zaowocuje ściągnięciem i zainstalowaniem najnowszej wersji naszego oprogramowania. Brawo! Pozostaje jedna drobnostka. Niestety na stronie http://localhost/clickoncehelloworld/publish.htm Widnieje wciąż stary numer wersji (mimo, że w środku czeka najnowsze oprogramowanie). By skorygowad to drobne niedociągnięcie użyjemy wyrażeo regularnych. Kopiujemy plik publish.htm do katalogu naszej polucji. Edytujemy go i znajdujemy miejsce gdzie widnieje numer wersji 0.0.0.1 i zamieniamy go na ciąg znaków ApplicationVersion i dodajemy następujący urywek na koocu naszego pliku msbuil. <Copy SourceFiles="ClickOnceHelloWorld\publish.htm" DestinationFiles="$(DeploymentFolder)\publish.htm"/> <FileUpdate Files="$(DeploymentFolder)\publish.htm" IgnoreCase="true" Multiline="true" Singleline="false" Regex="ApplicationVersion" ReplacementText="$(ApplicationVersion)$(RevisionNumber)"/> Najpierw kopiujemy nasz plik wzorcowy do katalogu docelowego, a później zmieniamy jego treśd za pomocą zadania FileUpdate wyszukując za pomocą Regex wyrażenia AplicationVersion i zamieniając je na ReplacementTest, który jest znanym nam już numerem wersji. FileUpdate jest częścią MSBuild Communitzy taska I tako taki musi zostad zaimportowany. <UsingTask AssemblyFile="lib\MSBuildCommunityTasks\MSBuild.Community.Tasks.dll" TaskName="MSBuild.Community.Tasks.Subversion.SvnInfo"></UsingTask> Wszystko gotowe można teraz skonfigurowad CruiseControl.net tak by używał naszego skryptu. Jak tego dokonad opisałem we wspomnianym wcześniej artykule. Dzięki tym prostym krokom, od tej pory po każdym przekazaniu nowej wersji do SVN otrzymamy świeżutką stronę kopię ClickOnce naszego oprogramowania.