Skip to content

Jak przygotować pierwszy projekt CI w Azure Pipelines?

Cześć. Dzisiaj zaprezentuję Wam jak możecie uruchomić swój pierwszy projekt CI w Azure Pipelines.

Ten artykuł wchodzi w skład cyklu prezentującego jak zacząć pracę w popularnych narzędziach CI/CD. W ramach tego wpisu pokażę Wam jak przygotować proces budowania oraz testowania prostego projektu opartego na Mavenie.

Czym jest Azure Pipelines?

Azure pipelines jest serwisem Continuous Integration i Continuous Delivery. Jego celem jest ciągłe budowanie, testowanie i przygotowywanie pakietów z kodu źródłowego (CI). Zbudowane pakiety można potem zainstalować w wybranym przez siebie miejscu (CD).

Usługa działa w ramach chmury Microsoft Azure co powoduje, że nie trzeba się zajmować utrzymaniem samego systemu do budowania. Daje to też dostęp do wszystkich zalet chmury Azure, takich jak skalowalność czy integracja z innymi usługami.

Usługa ta umożliwia budowanie projektów opartych o wiele różnych języków, m.in. : Python, Java, JavaScript, PHP, Ruby, C#, C++, i Go.

Przygotowania

Projekty w Azure Pipelines mogą korzystać z kodu umieszczonego w repozytoriach GIT lub też Azure Repo. W naszym poradniku wykorzystamy kod, który będzie znajdował się w serwisie GitHub. W związku z tym na początku konieczne jest posiadanie konta w tym serwisie.

Po ewentualnym utworzeniu konta w GitHub proponuję również utworzenie forka (kopii) repozytorium dostępnego pod adresem: https://github.com/czerniga/helloworld . W tym repozytorium zamieściłem prosty projekt Java, który posłuży nam jako kod źródłowy naszego projektu CI.

Tworzymy organizację w Azure Devops

Projekty w Azure pipelines tworzone są w ramach Azure DevOps Organizations. Organizacje w Azure DevOps to mechanizm, który pozwala organizować i łączyć w grupy projekty.

Dlatego też przed rozpoczęciem pracy należy utworzyć organizację lub też skorzystać z już istniejącej. Jeśli już macie organizację, w której możecie tworzyć projekty to możecie przejść do następnego punktu.

Organizację możemy utworzyć po przejściu do tego adresu: https://aex.dev.azure.com/ . Po wejściu na stronę należy potwierdzić konto i przejść dalej. Na kolejnej stronie klikamy Create new organization.

Towrzymy organizację Azure DevOps
Towrzymy organizację Azure DevOps

Na następnej stronie wybieramy nazwę dla naszej organizacji oraz to, gdzie będą hostowane nasze aplikacje. Po potwierdzeniu powinniśmy przejść do strony gdzie możemy stworzyć projekt. Tutaj podajemy nazwę projektu oraz wybieramy czy projekt ma być dostępny publicznie czy też nie (tutaj możemy zostawić opcję Private).

Tworzymy projekt w Azure DevOps
Tworzymy projekt w Azure DevOps

Po kliknięciu opcji Create project przejdziemy do panelu zawierającego nasze projekt.

Widok projektu Azure DevOps
Widok projektu Azure DevOps

Tworzymy pipeline w CodeBuild

W panelu głównym wybieramy opcję Pipelines a potem jeszcze raz Pipelines.

Tworzymy Azure Pipeline
Tworzymy Azure Pipelines

Na następnej stronie klikamy na Create pipeline.

Teraz musimy wybrać miejsce, w którym przechowujemy nasz kod. W naszym przypadku będzie to GitHub, w którym mamy sklonowany projekt. Dlatego też na tym ekranie wybieramy opcję GitHub.

Wybieramy źródło projektu (GitHub)
Wybieramy źródło projektu (GitHub)

Na kolejnej stronie musimy się zalogować do naszego konta w GitHubie. Po zalogowaniu widzimy nasze projekty w GitHubie. Tutaj wybieramy nasze repozytorium z projektem Maven. W moim przypadku jest to czerniga/helloworld-azure. W Waszym przypadku powinien to być projekt, który jest kopią projektu, o którym pisałem na początku wpisu.

Wybieramy repozytorium w GitHub
Wybieramy repozytorium w GitHub

Po wybraniu repozytorium przejdziemy do strony GitHub, na której będziemy musieli nadać uprawnienia odczytu i zapisu do repozytorium. Jest to konieczne do tego, aby serwis Azure DevOps mógł odczytać kod źródłowy. Dodatkowo też serwis zapisuje procesy w kodzie aplikacji. W ten sposób możemy zarządzać całym procesem tak samo jak kodem aplikacji.

Tutaj przed kliknięciem Approve and install możemy jeszcze wybrać, czy serwis ma mieć dostęp do wszystkich repozytoriów czy tylko do jednego wybranego.

Dostęp do repozytorium
Dostęp do repozytorium

Po ponownym przejściu do Azure DevOps otrzymamy kilka propozycji odnośnie pierwszej wersji procesu (Pipeline). Serwis sam na podstawie kodu wykrył, że ma do czynienia z projektem Maven. Dlatego też wybieramy też pierwszą opcję: Maven.

Wybieramy typ pipeline'a
Wybieramy typ pipeline’a

Po przejściu na nowy ekran zobaczymy edytor kodu dla naszego procesu. Serwis sam utworzy przykładowy proces zawierający domyślne opcje takie jak kontener dockerowy czy też przełączniki dla Javy.

Domyślny pipeline
Domyślny pipeline

My jednak w pole tekstowe wkleimy nasz kod:

# Maven
# Build your Java project and run tests with Apache Maven.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/java

trigger:
- master

pool:
  vmImage: ubuntu-latest

steps:
- task: [email protected]
  displayName: Build
  inputs:
    mavenPomFile: 'pom.xml'
    mavenOptions: '-Xmx3072m'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: '1.8'
    jdkArchitectureOption: 'x64'
    goals: '-B -DskipTests clean package'
    
- task: [email protected]
  displayName: Test
  inputs:
    targetType: 'inline'
    script: java -cp target/helloworld-1.1.jar com.coveros.demo.helloworld.HelloWorld

Powyższy kod definiuje nam dwie fazy procesu: budowanie i testowanie naszej aplikacji:

  • task [email protected]: tutaj budujemy nasz projekt w Mavenie (komendy są podawane w polu goals)
  • task [email protected]: tutaj uruchamiamy nasz prosty test (komendy są podawane w polu script)

Jak możecie zwrócić uwagę, powyższa definicja jest bardzo podobna do definicji w innych narzędziach takich jak CircleCi (Jak przygotować swój pierwszy projekt CI/CD w CircleCI?) czy też Gitlab (Jak zainstalować serwis GitLab przy użyciu Docker Compose?).

Po wklejeniu kodu dla naszego procesu klikamy na Save and Run. Pojawi się teraz nowy panel, w którym podamy wiadomość dla naszego commita w repozytorium oraz wybierzemy w której gałęzi chcemy zapisać nasz plik (domyślnie master).

Zapisujemy nasz proces
Zapisujemy nasz proces

Teraz ponownie klikamy na Save and Run.

Na nowym ekranie zobaczymy nasz pierwszy pipeline, który będzie oczekiwał na pierwsze uruchomienie.

Czekamy na uruchomienie Azure Pipeline
Czekamy na uruchomienie Azure Pipeline

Po kilku chwilach powinniśmy zobaczyć, że zadanie zakończyło się sukcesem.

Sukces !
Sukces !

Jeśli klikniemy na zadanie (Job) to zostaniemy przeniesieni do szczegółów naszego zadania. Tam możemy podejrzeć jak wyglądał proces budowania i testowania naszej aplikacji,

Logi z budowania zadania w Azure Pipelines
Logi z budowania zadania w Azure Pipelines

Podsumowanie

W tym poradniku Azure pipelines przedstawiłem Wam jak szybko można stworzyć pierwszy projekt w Azure Piepilne. Sam proces tworzenia projektu nie powinien zając więcej niż 10 minut.

Microsoft udostępnia też darmową opcję dla swojego serwisu. Dla publicznych projektów możemy korzystać z niego za darmo. W przypadku projektów prywatnych mamy dostępnych 30 godzin zadań za darmo w każdym miesiącu.

To daje nam możliwość sprawdzenia czy to rozwiązanie jest właściwe dla nas bez ponoszenia kosztów.

Published inCI/CDPoradnik

Be First to Comment

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *