This page is available only in polish

I am working on the translation!

Jak powiązać nasz projekt z Travisem?

Travis CI to narzędzie do Continuous Integration, dostępne w dwóch wersjach płatnej i darmowej dla projektów o otwartym kodzie źródłowym. Swoją przygodę z tym narzędziem zacząłem około półtora roku temu. Wówczas również stawiałem pierwsze kroki z próbami konfiguracji takich narzędzi.

Color water pipes PAGES.POST.COVER_THUMBNAIL.BY_WHOM LeeYiuTung

From this article you will learn:

  • Co to jest Travis

  • Do czego służą pliki yml

  • Jak przygotować CI dla własnego repozytorium, wykorzystując Travis'a

  • Jakie fazy budowania można wyróżnić w Travis'ie

  • Jak ustawić własne zmienne środowiskowe

  • Jak dodać własne powiadomienia o statusie

Travis CI to narzędzie do Continuous Integration, dostępne w dwóch wersjach płatnej i darmowej dla projektów o otwartym kodzie źródłowym. Swoją przygodę z tym narzędziem zacząłem około półtora roku temu. Wówczas również stawiałem pierwsze kroki z próbami konfiguracji takich narzędzi.

Jeden plik konfiguracyjny

Plik konfiguracyjny dla Travis’a zapisany jest w formacie yml. Za ten format odpowiada YAML, czyli uniwersalny język do prezentowania danych w sposób odpowiednio ustrukturyzowany. Plik konfiguracyjny powinien mieć nazwę .travis.yml.

Na początku jednak musimy ustalić jakiego rodzaju projekt będzie powiązany z Travisem (w tym artykule przedstawię przykład oparty o nodejs) oraz ustalić procedury, których będziemy się trzymać, pracując nad naszym projektem. Zdecydowana większość projektów budowana jest z wykorzystaniem systemu kontroli wersji GIT. W repozytoriach tego typu najczęściej główny branch to master, który jest bezpośrednio powiązany z wersją produkcyjną aplikacji. Natomiast branch dev lub develop, spotkałem się też z wersją workspace, jest tożsamy z wersją deweloperską kodu, który rozwijamy. Jednoznacznie więc widać, że w naszej procedurze powinniśmy uwzględnić przynajmniej dwie wersje: produkcyjną i deweloperską, poprzez powiązanie kodu z poszczególnych branchy z odpowiednim środowiskiem. Często jest też tak, że obie te wersje znajdują się na różnych serwerach. Na szczęście Travis pozwala nam to wszystko uwzględnić w swojej konfiguracji.

Podstawowa konfiguracja

Pole language powinno zawierać informacje o języku w jakim będziemy realizować proces budowania naszej aplikacji. Drugie pole, wskaże nam na wersję node_js, z której chcemy korzystać. Trzecie pole, które wykorzystamy w naszym przykładzie to pole cache. W tym miejscu możemy wskazać, które katalogi powinny być przekazane do cache’a, aby w przyszłości zmniejszyć zasoby konieczne do wykonania całego procesu - w naszym przypadku pobieranie za każdym razem wszystkich pakietów npm’a będzie raczej zbędnym krokiem.

Proces

Travis dzieli cały proces budowania na fazy. W dokumentacji nazywa się to cyklem życia procesu. W cyklu życia występują dwie główne fazy:

  • install - w trakcie tej fazy przygotowywane jest całe środowisko, instalowane są wszystkie niezbędne zależności

  • script - w trakcie tej fazy uruchamiany jest proces budowania

Oprócz dwóch głównych faz możemy wydzielić fazy dodatkowe, takie jak:

  • before_install

  • before_script

  • after_script

  • after_success

  • after_failure

To są fazy, które wystąpią zawsze. Oprócz nich możemy wyróżnić jeszcze fazy opcjonalne, np:

  • before_cache

  • before_deploy

  • deploy

  • after_deploy.

Całkiem sporo tego, prawda? Zrozumienie tego, jak wygląda proces budowania, pozwala nam włączać się w różne fazy cyklu życia całego procesu i dodawać nowe zadania, kontrolować proces i wykrywać błędy, których prawdopodobnie samodzielnie byśmy nie wychwycili.

Spójrz na poniższy przykład. Wskazałem, że w fazie script mają wykonać się następujące zadania: npm run test oraz npm run build. Wykonają się one w tej kolejności, w której zostały wyszczególnione. W przypadku, gdyby testy nie przeszły, proces zostanie przerwany, a w panelu Travis’a zobaczymy czerwony komunikat o nieudanym procesie. To samo dotyczy każdego zadania, które wskażesz do wykonania.

Share this article:

Comments (0)

    No one has posted anything yet, but that means.... you may be the first.

You may be interested in

lorem

Monorepo vs Polirepo by Mateusz Jabłoński
Podcast
01 March 2023

Monorepo vs Polirepo

Programowanie to nie tylko podejmowanie decyzji, kiedy jaką funkcję napisać czy jak nazwać zmienną. Programowanie to proces, który trzeba zainicjować podejmując różne decyzje, które będą na niego rzutowały w następnych etapach. Jedna z nich to odpowiedź na pytanie: Monorepo czy Polirepo?

Posłuchaj
NextJS i co dalej by Mateusz Jabłoński
Podcast
01 June 2023

NextJS i co dalej

NextJS wprowadził React'a na nowe ścieżki. Śmiało można powiedzieć, że twórcy Next'a zmieniają frontend. O tym rozmawiamy w piątym odcinku podcastu Piwnica IT.

Posłuchaj

Zapisz się do newslettera

Bądź na bieżąco z nowymi materiałami, ćwiczeniami i ciekawostkami ze świata IT. Dołącz do mnie.