Development z Zapomnianej Strony

..:: Paweł Hofman .NET Portal ::..

Jeżeli zależy nam na jakości wytwarzanego oprogramowania (co jest z góry wiadome, że tak) – to pojęcie Continous Integration nie powinno być obce. Mi osobiście do gustu przypadł projekt BuildBot. Jednym zdaniem – mały, prosty, obsługujący wiele platform, bardzo łatwo rozszerzalny i co więcej mamy pełny kod źródłowy, gdyby coś poszło nie tak…

Jak go zatem zainstalować na Windows XP (i późniejszym)? Twardzieli odsyłam do “oficjalnego” przewodnika. Ja postaram się dodać coś od siebie i zmniejszyć ilość potrzebnym kroków:

  1. Instalujemy Python 2.7.1. Inne (czyt.: wyższe) wersje Pythona mogą być nieco niewygodne, bo nie wszystkie ‘pakiety’ wymagane przez BuildBota mogą być już zaktualizowane, aby z nią działać i w chwili pisania, tak właśnie było.
  2. Do zmiennej systemowej PATH dodajemy odpowiednio katalogi (co skróci niektóre męki przy wykonywaniu poleceń z konsoli):
    • C:\Python27
    • C:\Python27\Scripts
      (najprościej chyba we Właściwościach Systemu –> Zaawansowane –> Zmienne środowiskowe i tam znajdziemy Path)
  3. Instalujemy twisted w wersji 10.2.
  4. Instalujemy SetupTools dla Pythona w wersji 2.7.1. Będą one potrzebne, aby później bez problemu pobrać z sieci wszystko to, czego jeszcze brakuje dla działającej instancji BuildBota.
  5. Teraz poleceniami instalujemy:
    • easy_install Zope.Inteface
    • easy_install jinja2
    • easy_install PyCrypto
    • easy_install PyOpenSSL
  6. Wreszcie pobieramy samego BuildBota (jako master i slave). Rozpakowujemy do katalogu C:\Temp.
  7. Instalujemy go:
    • python C:\Temp\buildbot-0.8.2\setup.py install
    • python C:\Temp\buildslave-0.8.2\setup.py install
  8. Sprawdzamy, czy wszystko działa:
    buildbot --version

    Powinno zwrócić numer wersji, a nie krzyczeć o brak zainstalowanego pakietu.
  9. Teraz pozostała już tylko własna konfiguracja maszyn budujących, dostępów do repozytoriów, nadobnych akcji, uruchamiania testów oraz przygotowywaniu release’a. O tym może opowiem coś niedługo. Dokumentacja natomiast opisuje wszystko bardzo czytelnie.

Oczywiście nie byłbym sobą, gdybym w tym momencie nie napotkał na problem oraz nie próbował ostrzec, że bardzo łatwo zmarnować wieczór i stracić dobry humor. Powód dość prozaiczny. Nie działa logowanie oraz podgląd wykonywanych poleceń, historia itp. Generalnie dużo rzeczy wygląda jak nieudane posuniecie i brak wsparcia dla Windowsa. Nic bardziej mylnego.  Winą obarczmy brak zgrania BuildBota z najnowszą wersją twisted. Bardzo ładnie opisano to w tickecie #1697. Z pomocą przychodzi nam tutaj oczywiście otwartość kodu tego projektu. W opisie problemu znajduje się odnośnik do poprawki. Aplikujemy ją bardzo prosto, nadpisując plik builder.py, tym, który ściągamy z repozytorium.

Uruchamiamy ponownie BuildBot mastera i gotowe!



Kontynuując post o samym tworzeniu repozytorium i dostępie do niego z poziomu terminala Linuxa, warto też wspomnieć, że tak samo łatwo skonfigurować go można na Windowsie.

Otóż tunel ssh definiujemy w sekcji [tunnels] pliku (ścieżka dla Windows 7):

C:\Users\<użytkownik>\AppData\Roaming\Subversion\config

 

Wygląda on mniej więcej tak:

ssh = “C:/Programy/Putty/plink.exe” –P <port SVN> –l <użytkownik>
                                  –i “C:/Users/<użytkownik>/.ssh/id_rsa”

Wyjaśniając:

  1. Przy użyciu programu plink (wchodzącego w skład ‘paczki’ putty, którą trzeba pobrać i zainstalować wcześniej), utrzymywane będzie połączenie ssh do serwera.
  2. Plik klucza prywatnego id_rsa, nie jest wymagany, a jedynie stanowi ułatwienie, aby nie wprowadzać hasła przy każdorazowym dostępie do serwera (a ich żądań może być wiele nawet przy jednorazowej aktualizacji plików, czy pobieraniu/przeglądaniu repozytorium).

 

 

Jest jeszcze druga wersja tego tunelu, która pozwala na jednoczesne korzystanie z TortoiseSVN. Wygląda ona tylko nieznacznie inaczej:

ssh = “C:/Program Files/TortoiseSVN/bin/TortoisePlink.exe” –P <port SVN> –l <użytkownik>
                                 –i “C:/Users/<użytkownik>/.ssh/id_rsa”

 

 

Do repozytorium dostajemy się później standardowo poleceniem:

svn co svn+ssh://<ścieżka>

oraz aktualizujemy:

svn up .

Gotowe!



Zadanie na dzisiaj: instalacja programu MediaGo na komputerze z systemem Windows XP SP3 PL, a dokładniej – próba instalacji pomimo błędu:

Installing Microsoft Windows Imaging Component
One or more features could not be installed. The installation has been stopped.
Click Cancel to exit.


Installing Microsoft Windows Imaging Component

Okazuje się, że Sony Ericsson przy pisaniu tego instalatora dał plamę na całej linii. Niezależnie od tego, co byśmy robili, instalacja zakończy się błędem w najmniej oczekiwanym momencie – podczas aktualizacji komponentu Windows Imaging. Można go również bezpośrednio pobrać tutaj i spróbować aktualizować samodzielnie.

Przy własnoręcznej próbie instalacji tego komponentu dowiemy się w końcu, gdzie tkwi błąd. Otóż w systemie jest już zainstalowana nowsza wersja (dokładniej, to o jakieś dwa lata) i jej nadpisanie nie jest dopuszczalne. Aby obejść ten problem należy wykonać trzy proste kroki:

  1. założyć nowy folder i przenieść do niego następujące pliki z katalogu C:\Windows\System32:

    windowscodecs.dll
    windowscodecsext.dll
    photometadatahandler.dll
    WMPhoto.dll
  2. ponownie uruchamiamy instalator MediaGo (tym razem wszystko się powiedzie)


    Installing MediaGo
  3. przywracamy przeniesione pliki w kroku (1) na ich właściwe miejsce w C:\Windows\System32, nadpisując te, które wgrał tam instalator.

Odtąd możemy cieszyć się naszą aplikacją i kopiować zdjęcia oraz wideo na telefon.



Autor

Paweł Hofman [CodeTitans]

ASP.NET
C/C++, C#, Objective-C
SQL

License and Disclaimer

Moje Gry i Aplikacje

Zobacz mnie na GoldenLine

Zobacz mnie na LinkedIn
Supported by Polish SQL Server User Group (PLSSUG)

Supported by WrocNet.org

Zine.net.pl

Wpisy

Projekty

Moje projekty open-source:

Sign in