> For the complete documentation index, see [llms.txt](https://kompendium.cloudlets.zone/kompendium/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kompendium.cloudlets.zone/kompendium/wdrozenia/automatyczne-wdrazanie-aktualizacji-git-svn.md).

# Automatyczne wdrażanie aktualizacji Git/SVN

Wykorzystanie zewnętrznych repozytoriów systemów kontroli wersji jako źródła projektów

Na [Cloudlets.Zone](https://cloudlets.zone) można skonfigurować okresowe automatyczne aktualizacje wdrożeń z użyciem powszechnie stosowanych systemów kontroli wersji Git/SVN. Po prostu zaktualizuj swój kod, dokonaj zatwierdzenia, a wszystkie zmiany w Twoim projekcie VCS zostaną automatycznie przesłane do środowiska developerskiego lub produkcyjnego po określonym przedziale czasu. W odróżnieniu od haków Git, funkcja automatycznego wdrażania na Cloudlets.Zone nie wymaga żadnych dodatkowych konfiguracji po stronie repozytorium projektu.&#x20;

## Przygotowanie projektu <a href="#preparing-a-project" id="preparing-a-project"></a>

1. Zaczynamy od uruchomienia kreatora środowiska i wyboru technologii zgodnej z projektem, po który sięgać będziemy do repozytoriów Git/SVN. Rozważymy to na przykładzie węzła kompilacji Maven dla Javy - jednak każdy inny serwer aplikacji może być skonfigurowany podobnie.

![](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MWnpSFLdAw8lYDKrSEr%2Fuploads%2Fd02d55dcvVKNN92KywV5%2Fimage.png?alt=media\&token=96d476f8-eb1b-4e86-91dc-6d1a409646a3)

{% hint style="info" %}
Środowiska Java wymagają dodatkowego węzła Maven do budowania i wysyłania kodu do serwera aplikacji, podczas gdy w przypadku pozostałych języków, mechanizm ten jest obsługiwany natywnie przez węzły obliczeniowe.
{% endhint %}

2\. Po utworzeniu środowiska kliknij przycisk **Dodaj projekt** obok odpowiedniego węzła (np. *Maven* dla Java lub serwera aplikacji dla dowolnego innego języka).

![](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MWnpSFLdAw8lYDKrSEr%2Fuploads%2FgjN3YnYT7WmrX0EjNTtM%2Fimage.png?alt=media\&token=7ff69538-8677-404f-9743-1a2dcafd2058)

3\. W otwartym oknie przejdź do zakładki z rodzajem używanego VCS i wypełnij wymagane pola: wprowadź **adres URL** do potrzebnego repozytorium, określ szczegóły uwierzytelnienia oraz wskaż nazwę kontekstu, w którym ma być umieszczona Twoja aplikacja.

Ponadto w przypadku użycia węzła kompilacji Maven, należy dodatkowo określić **nazwę projektu** i **środowisko**, w którym ma zostać wdrożony.

![](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MWnpSFLdAw8lYDKrSEr%2Fuploads%2FnVfnFKWUIhZzq9qZuu8m%2Fimage.png?alt=media\&token=6808f56b-2f4b-4375-ba09-b1c469e91645)

{% hint style="info" %}
**Wskazówki.** Ta ramka zawiera opis poszczególnych ustawień, które mogą się przydać do zorganizowania właściwej interakcji systemu ze zdalnym repozytorium:

* **Sprawdź i automatycznie instaluj aktualizacje** - służy do wskazania, czy chcesz wdrożyć projekt natychmiast po jego dodaniu, czy odroczyć tę operację (w celu późniejszej ręcznej inicjacji).
* Opcja **Automatycznego rozwiązywania konfliktów** jest domyślnie zaznaczona i stanowi odpowiednik polecenia  *git  reset  –hard*. Służy do zapobiegania występowaniu konfliktów scalania podczas kolejnych aktualizacji projektu, które mogą mieć miejsce, jeśli ten sam plik został zmodyfikowany zarówno w zdalnym repozytorium, jak i w Twoim projekcie utrzymywanym na Cloudlets.Zone. Jeżeli pojawi się taki problem, ten sprzeczny plik zostanie zaktualizowany zgodnie z wersją repozytorium (która jest uważana za nadrzędną), odrzucając zmiany wprowadzone lokalnie. Zalecamy, aby nie wyłączać tej opcji, chyba że dokładnie wiesz, co robisz.
* Opcja **Uruchom instalację bez przestojów** (obecnie dostępna tylko dla PHP) pozwala na ciągłe wdrażanie aktualizacji aplikacji, znajdujących się w kontekście *ROOT*, bez przerw w pracy aplikacji. Jeżeli opcja ta jest włączona, Twój wybór zostanie zapamiętany i wykorzystany podczas wszystkich kolejnych automatycznych aktualizacji.

![](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MWnpSFLdAw8lYDKrSEr%2Fuploads%2FCwkB7PujRQD7t1Gxl75e%2Fimage.png?alt=media\&token=9db7260c-f0a1-4831-ad71-d03cf6e6bf99)
{% endhint %}

4\. Po kliknięciu przycisku zastosuj nastąpi instalacja projektu.&#x20;

![](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MWnpSFLdAw8lYDKrSEr%2Fuploads%2F6opDBoNLVJ6NugZNUfBL%2Fimage.png?alt=media\&token=2b196999-e075-440d-8fdb-041d5ecac67a)

Wdrożenie zakończyło się sukcesem. Projekt jest dostępny z poziomu [www](http://www).

![](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MWnpSFLdAw8lYDKrSEr%2Fuploads%2FGp77cNhOQD9A7YEiQUmL%2Fimage.png?alt=media\&token=e1b755c9-61c2-4767-80b7-549d5dfa3a59)

## Śledzenie automatycznych aktualizacji <a href="#tracking-auto-updates" id="tracking-auto-updates"></a>

Aby monitorować przetwarzanie automatycznego wdrażania i jego wyniki, możesz przejrzeć odpowiedni plik dziennika (o nazwie ***vcs\_update***) dla odpowiedniego serwera aplikacji lub węzła Maven.

![Logi menadżera wdrożeń](https://1972667440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MWnpSFLdAw8lYDKrSEr%2Fuploads%2F7McETT3n0tmYFtIipyCf%2Fimage.png?alt=media\&token=168d6e6f-a48b-4c40-a9a0-0b811751e560)

{% hint style="info" %}
Możesz również ponownie skonfigurować wdrożoną aplikację za pomocą ustawień aplikacji Git/SVN, przechodząc do swojego środowiska i wybierając  przycisk **Edytuj**  obok odpowiedniego projektu. Zobaczysz otwartą ramkę, podobną do tej, która była używana do dodawania projektu, w której możesz zmienić stan dowolnej z opcji opisanych powyżej (wystarczy kliknąć  **Zastosuj**, aby potwierdzić nowe ustawienia).
{% endhint %}

To wszystko! Po dokonaniu tych prostych konfiguracji możesz kontynuować pracę z repozytorium Git/SVN, bez konieczności ponownego wracania do naszego [Panelu Usługi Cloudlets.Zone](https://app.controller.cloudlets.zone/). Możesz mieć pewność, że wszystko będzie automatycznie aktualizowane w Twoim środowisku!
