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"
{F205046}
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.
## 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](https://hub.sealcode.org/w/sealcode_wiki/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
{F207745}
4. Kliknij „Build with parameters”
{F207747}
5. Wpisz numer portu i nazwę diffa:
{F207749}
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. Dzięki temu można odpalać wiele aplikacji równolegle. 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/
{F207752}
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.