Kiedy 140 minut na VSTS to za mało

Kiedy 140 minut na VSTS to za mało

Kiedy chcemy zautomatyzować wytwarzanie oprogramowania przy pomocy takich narzędzi jak VSTS(Azure Dev-Ops) używamy CI/CD. VSTS jest bardzo fajnym narzędziem, które pozwala nam stworzyć automatyczny build oraz deploy, całkowicie za darmo. Oczywiście wersje darmowe przeważnie mają limity i tym wypadku jest tak samo. W ciągu miesiąca darmowa wersja udostępnia nam 140 minut użycia maszyny wirtualnej.

Microsoft daje nam kilka możliwości aby “przedłużyć” te 140 minut. Pierwszy sposób to podpięcie karty kredytowej ;). Nie ukrywam jest to chyba najmniej korzystna oferta ze wszystkich dostępnych możliwości. Kolejnym sposobem to wykorzystanie własnej maszyny lub maszyny wirtualnej do odpalania wszystkich akcji które dzieją się na VSTS.

Drugi sposób pozwala zmniejszyć koszty do 0 jeżeli podłączymy nasz prywatny komputer razem z vsts. Decyzja ta wiążę się z tym, że udostępniamy pamięć naszego komputera dla VSTS. Jeżeli liczba build-ów nie jest wielka i pracujemy sami nad projektem to jest to dobre rozwiązanie. Musimy tylko pamiętać, że nasz komputer musi być włączony, jeżeli chcemy używać go jako maszynę do budowania aplikacji.

Kiedy pracujemy już w małym zespole zdecydowanie polecam postawić maszynę wirtualną na które będziemy wykonywać wszystkie operacje. Korki które pokarzę wszędzie zadziałają tak samo, zatem obojętnie co wybierzesz to powinno zadziałać 🙂 W moim przypadku stworzyłem wirtualną maszynę którą postawiłem na Azure.

Aby stworzyć build pipelines musimy mieć stworzony projekt na VSTS. Pierwszym krokiem jest stworzenie klucza do naszego konta na VSTS. Aby to zrobić musimy kliknąć nasz profil(górny prawy róg) > wybrać “Security” > Wygenerować nowy token.

Kiedy to zrobimy musimy nadać odpowiednie uprawnienia. Najłatwiej dać wszystkie 🙂

Kiedy token został wygenerowany, pamiętajmy go zapisać. Później nie będzie możliwości sprawdzenia go ponownie.

Kolejnym krokiem będzie stworzenie agenta który zostanie zainstalowany na naszym komputerze. Aby to zrobić musimy wejść w kartę Project Settings > Piplines > AgnetPools > Download Agnet.

Jak można zauważyć dostajemy już gotowca którego wystarczy tylko użyć. Agent może działać również na Windowsie, MacOS oraz Linuxie. Ja wybrałem Windows. Pobierzmy zatem agenta.

Kolejnym krokiem będzie skopiowanie komend które wykonamy w PowerShellu. W komendzie podajemy ścieżkę gdzie znajduję się pobrany agent. Domyślnie jest to $HOME\Downloads\vsts-agent-win-x86-2.141.1.zip  lecz nie stoi na przeszkodzie jej zmienić na ścieżkę w której znajduję się pobrany plik.

Kiedy jesteśmy pewni ścieżki możemy kopiować komendy i zainstalować agenta:

  • cd c://
  • mkdir agent ; cd agent
  • Add-Type -AssemblyName System.IO.Compression.FileSystem ; [System.IO.Compression.ZipFile]::ExtractToDirectory("$HOME\Downloads\vsts-agent-win-x86-2.141.1.zip", "$PWD")

PowerShell zainstaluje potrzebne składniki możemy zacząć konfigurować naszego agenta komendą .\config.cmd

  1. Adresem url naszego serwera to nazwa vsts

    2. Authentication type – Zostawić domyślny “kliknij enter”

    3. Personal Access Token – wklej wygenerowany token w vsts (pierwsze kroki tego poradnika)

   4. Agent pool – Domyślny default. Możemy wymyślić własny 🙂

   5. Agent name – Nazwa waszego agenta która będzie widoczna podczas builda aplikacji.

  6. Work folder – klikamy enter (folder w którym będą pliki które budujemy)

   7. Run agent as service – Wpisujemy “Y” i klikamy enter. Dzięki temu agent będzie gotowy do użycia.

   8. User account to use for service – zostawiamy domyślne

Całość wygląda tak.

Nasz agent jest gotowy 🙂 Wejdźmy teraz do naszego agent pool Project Settings > Piplines > AgnetPools ? Default. Jak możecie zauważyć nasz komputer jest widoczny i ma status online (Jeżeli status jest offline wpisz komendę .\run.cmd).

Teraz podczas budowania definicji wystarczy wybrać aby naszym agentem był “Default agent” i cały build będzie przechodził na naszym komputerze. Należy pamiętać, że agent korzysta z zainstalowanych rzeczy na naszym komputerze. Jeżeli chcemy zbudować aplikację .net musimy mieć zainstalowanego MS build, jeżeli chcemy zbudować Angulara potrzebujemy node.js itp. Tworząc tego agenta omijamy limity nadane przez VSTS i możemy budować aplikację do woli 🙂



Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *