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.
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).
Po kliknięciu opcji Create project przejdziemy do panelu zawierającego nasze projekt.
Tworzymy pipeline w CodeBuild
W panelu głównym wybieramy opcję Pipelines a potem jeszcze raz 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.
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.
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.
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.
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.
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: Maven@3
displayName: Build
inputs:
mavenPomFile: 'pom.xml'
mavenOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.8'
jdkArchitectureOption: 'x64'
goals: '-B -DskipTests clean package'
- task: Bash@3
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 Maven@3: tutaj budujemy nasz projekt w Mavenie (komendy są podawane w polu goals)
- task Bash@3: 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).
Teraz ponownie klikamy na Save and Run.
Na nowym ekranie zobaczymy nasz pierwszy pipeline, który będzie oczekiwał na pierwsze uruchomienie.
Po kilku chwilach powinniśmy zobaczyć, że zadanie zakończyło się sukcesem.
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,
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.
Be First to Comment