Dzisiaj przedstawiam jak zbudować i zdiplojować paczkę na Azure przy pomocy Cake. Ten blogpost składa się z dwóch logicznych części. Po pierwsze przedstawiam i opisuję skrypt budujący paczkę. W drugiej natomiast pokazuję jak wygląda skrypt publikujący aplikację na Azure Web App. Zapraszam najserdeczniej.

Przygotowanie paczki

Aby przygotować paczkę należy wykonać kilka kroków, ale najpierw skrypt:

Przygotowanie

Na początek przygotowałem dwa taski:

  • Restore-NuGet-Packages – do pobrania nugetów. Pisałem już o tym przy okazji budowania solucji i odpalania testów
  • Clean-Package-Dir – w celu wyczyszczenia katalogu, gdzie paczka będzie przygotowywana, aby nie zaplątały się tam jakieś stare pliki

Budowanie projektu

Przygotowanie mamy za sobą, zatem pora na przyjemniejsze rzeczy. Następnym krokiem jest przygotowanie paczki przy pomocy MsBuild. Przygotowałem metodę prywatną BuildPackage przyjmującą dwa parametry: ścieżkę do pliku csProj oraz docelowe miejsce gdzie paczka ma zostać stworzona. Fragmentem na który warto zwrócić uwagę jest linia z .WithTarget("Package"). To właśnie tam definiowany jest tryb przygotowania paczki. Posiadając już taką funkcję możesz spojrzeć na task Prepare-Api-Package przygotowujący odpowiednie ścieżki i przekazujący je do metody BuildPackage.

Kopiowanie skryptów deplojująych

Wszystkie skrypty związane z CI umieściłem w katalogu Deployment w repozytorium. Przy czym budowanie paczki to jedno, a jej późniejsza publikacja ta drugie. W związku z tym stworzyłem również podkatalog deployScripts w którym leżą skrypty używane do diploja. Które opiszę w drugiej części wpisu. W każdym razie powinny one zostać skopiowane do katalogu z paczką, aby była ona kompletna i gotowe do użycia. Dokładnie to jest wykonane w tasku Copy-Deploy-Scripts.

Deploy Script

Jak wspomniałem wyżej skrypty publikujące, a konkretnej skrypt, umieściłem w katalogu deployScripts. Ma on za zadaniu odpowiednie skonfigurowanie paczki i wypchnięcie jej na serwer. Wygląda on tak:

Powyższy skrypt działa. Patrząc na niego możesz go podzielić na trzy części:

  • Argumenty, jakie powinny być przekazane, aby aplikacja mogła zostać opublikowana i poprawnie skonfigurowana.
  • Task DeployApiApp odpowiednio przekazujący dane do prywatnej metody DeployToAzure
  • Metoda DeployToAzure, odpowiedzialna za wypchnięcie paczki na podstawie dostarczonych parametrówprzy pomocy MsDeploy

Publish profile

Mam wrażenie, że jedyna niewiadoma, to skąd wziąć wartości parametrów „apiSiteName” i „apiSitePassword”. Pokazuje i objaśniam ;). Po zalogowaniu się na Azure Portal, stworzeniu komponentu WebApp i wejściu w jego szczegóły. Jest widoczny przycisk „Get publish profile”
Get publish profile
Po kliknięciu w niego, zostanie pobrany plik xml. Zawiera on wiele zmiennych, natomiast do działania powyższego skryptu potrzeba tylko dwóch msdeploySite oraz userPWD. Mając te wartości możesz je przekazać do powyższego skryptu i wszystko powinno chulać.

Zakończenie

To wszystko na dziś. Kompletując wiedzę z tego wpisu oraz dwóch starszych o budowaniu paczki wraz z odpalaniem testów oraz o tym jak dodać dodatkowe parametry do SetParameters.xml masz już gotowy, może skromny, ale działający zaczątek do CI w Twoim projekcie. Czy post ten jest dla Ciebie wartościowy? Czy automatyzujesz takie rzeczy w Twoich projektach? Jeżeli nie to dlaczego?



Podobało Ci się?

Zapisz się i nie przegap kolejnych postów.


Dodaj komentarz

Twój adres email nie zostanie opublikowany.

This site uses Akismet to reduce spam. Learn how your comment data is processed.