Page MenuHomeSealhub

Jenkins
Updated 1,055 Days AgoPublic

Jenkins służy do stawiania projektów w celach testów.

Aby korzystać z Jenkinsa, konieczne jest posiadanie konta LDAP (https://hub.sealcode.org/w/sealcode_wiki/ldap/).

Korzystanie z Jenkinsa

Zaloguj się do https://jenkins.sealcode.org/ danymi z LDAP. Przejdź do projektu "Deploy to dep.sealco.de", a następnie wybierz opcję "Build with parameters"

image.png (670×1 px, 83 KB)

Następnie wybierz parametry dla zadanego builda:

  • port - na jakim porcie ma być wystawiona aplikacja. Jest to port lokalny na serwerze, nie jest otwierany na zewnątrz. Aby dostać się do niego z zewnątrz należy użyć adresu https://<nr_portu>.dep.sealco.de. Łączymy się wtedy z nim przez nginx-owe proxy z SSL. Przykładowo: jak wybierzemy port 7777, to dostęp do postawionej aplikacji będzie pod adresem https://7777.dep.sealco.de
  • diff - numer diffa do odpalenia. Jenkins sam pobierze informacje o repozytorium, sklonuje je i zpatchuje tego diffa.

Przejdź do "console output" nowo utworzonego builda. Jeżeli build przejdzie pomyślnie, zobaczysz tam link do zdeployowanej aplikacji.

Szczegółowy tutorial krok po kroku znajduje się poniżej.

Dostosowywanie repozytorium do uruchamiania się w jenkinsie

Trzeba powiedzieć jenkinsowi, jak ma budować zadaną apkę. Robimy to za pomocą specjalnego pliku w repo: jenkins.start.sh. Po pomyślnym sklonowaniu repo i spatchowaniu diffa jenkins odpali ten skrypt podając mu jako pierwszy argument numer portu, na którym aplikacja ma nasłuchiwać, a w drugim argumencie - zewnętrzny URL, pod którym będzie dostępna aplikacja.

Przykładowy skrypt jeknins.start.sh znajduje się w repo sealious-playground:

https://hub.sealcode.org/diffusion/PLAY/browse/hotwire/jenkins.start.sh

W jenkinsie jest dostępny docker i docker-compose.

Deployowanie diffa - szczegółowy tutorial

NOTE: aby mieć dostęp do Jenkinsa, musisz mieć Sealcode'owe konto LDAP. W celu jego założenia zagadaj do @kuba-orlik
  1. Przejdź do https://jenkins.sealcode.org/
  2. Zaloguj się swoimi danymi LDAP
  3. Wybierz projekt „Deploy to dep.sealco.de” z listy projektów
    image.png (653×1 px, 72 KB)
  4. Kliknij „Build with parameters”

    image.png (892×977 px, 99 KB)
  1. Wpisz numer portu i nazwę diffa:

    image.png (382×771 px, 21 KB)


    Numer portu to właściwie dowolna czterocyfrowa liczba. Pozwala on wybrać, na którym lokalnym (niedostępnym z zewnątrz) porcie ma się odpalić apka. Apka będzie dostępna z zewnątrz pod adresem https://<number portu>.dep.sealco.de, z certyfikatem od LetsEncrypt.

    Można odpalać wiele aplikacji równolegle na różnych portach. Jeżeli podamy port aplikacji już istniejącej, to zostanie ona wyłączona i zastąpiona tą nową.

    Dla każdej aplikacji zostaje tworzony nowy katalog w workspace tego projektu jenkinsowego. Ten nowy katalog będzie miał nazwę odpowiadającą wybranemu przez nas numerowi portu. Wszystkie te katalogi można podejrzeć tutaj: https://jenkins.sealcode.org/job/Deploy%20to%20dep.sealco.de/ws/

    image.png (522×892 px, 51 KB)


    Pomaga to znaleźć wolny port - jeżeli jakiś numer nie pojawia się na tej liście, to znaczy, że jego port nie jest używany przez żadnego innego joba jenkinsowego.

    Wewnątrz tych katalogów znajduje się cały kod aplikacji, jej logi oraz dowolne utworzone przez tę aplikację skutki uboczne. Można je podejrzeć za pomocą interfejsu webowego Jenkinsa.
  1. Kliknij „Build”.
  1. Utworzy się nowy job:
    image.png (875×516 px, 80 KB)
    Kliknij w niego i wybierz "Console Output", aby zobaczyć wynik budowania diffa
  1. Jeżeli wszystko pójdzie pomyślnie, to na dole powinna wyświetlić się informacja:
...
Creating 8088_test_run ... done
8088_test_run_b3184304f3ca
App started on 8088
Deployed to https://8088.dep.sealco.de
Application logs should be available at https://jenkins.sealcode.org/job/Deploy%20to%20dep.sealco.de/ws/8088/log.html
Finished: SUCCESS

Wspomniany w tym komunikacie link do logów prowadzi do pliku z outputem uruchomionej aplikacji:

image.png (742×1 px, 101 KB)

Logi te nie odświeżają się automatycznie - ale po odświeżeniu strony wczyta się ich najnowsza wersja. Może to być całkiem pomocne przy debugowaniu ;)

Tags
None
Referenced Files
F207759: image.png
Jun 4 2021, 09:16
F207762: image.png
Jun 4 2021, 09:16
F207752: image.png
Jun 4 2021, 08:49
F207745: image.png
Jun 4 2021, 08:49
F207749: image.png
Jun 4 2021, 08:49
F207747: image.png
Jun 4 2021, 08:49
F205046: image.png
May 27 2021, 21:11
Subscribers
Last Author
kuba-orlik
Last Edited
Jun 4 2021, 09:16

Event Timeline

kuba-orlik edited the content of this document. (Show Details)
kuba-orlik edited the content of this document. (Show Details)