... | ... | @@ -27,7 +27,7 @@ Drugi rodzaj zadań, jest związany bezpośrednio z projektem. Pracujemy według |
|
|
|
|
|
Tworząc nazwę branch'a dla zadania prefiksujemy ją numerem Issue, aby w GitLabie pojawiło się powiązanie, między branch'em, a issue, czyli nazwa brancha = `numer_issue-tytul`
|
|
|
|
|
|
Dla przykładu, mając [issue](https://elenx.net/blank/Raicoone/issues/9), którego numer - 9 - możemy znaleźć zaraz pod główną zakładką lub w URL'u - `https://elenx.net/blank/Raicoone/issues/1`, tworzymy branch `9-ftp-tests`.
|
|
|
Dla przykładu, mając [issue](https://gitlab.com/elenx_net/Raicoone/-/issues/100), którego numer - 100 - możemy znaleźć zaraz pod główną zakładką lub w URL'u - `https://gitlab.com/elenx_net/Raicoone/-/issues/100`, tworzymy branch `100-cache`.
|
|
|
|
|
|
Jeśli nie jest to koniecznie, starajmy się nie umieszczać więcej niż 10 plików w jednym PR/MR - przyczyni się to do szybszego sprawdzenia a co za tym idzie dostaniesz szybszy feedback i nie popełnisz tych samych błędów w kolejnych. Usprawni to znacznie pracę mentorom - w przypadku małych PR'ów wystarczy 10-15 minut wolnego czasu na sprawdzenie; jeśli plików jest dużo a zadanie nie jest trywialne.
|
|
|
|
... | ... | @@ -43,7 +43,7 @@ Merge Request = MR = PR = Pull request |
|
|
|
|
|
## Sonar & Gitlab CI
|
|
|
|
|
|
Jeśli już wiesz jak wygląda [praca z Git'em](https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow), opiszemy co się dzieje **po** wykonaniu *pull request*.
|
|
|
Jeśli już wiesz jak wygląda [praca z Git'em](https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow), opiszemy co się dzieje **po** wykonaniu *merge request*.
|
|
|
|
|
|
Nasi dwaj przyjaciele, [Sonar](https://www.sonarqube.org/) i [Gitlab CI](https://about.gitlab.com/2015/12/14/getting-started-with-gitlab-and-gitlab-ci/) przeanalizują Twój kod na zdalnym serwerze.
|
|
|
|
... | ... | @@ -57,13 +57,13 @@ Pierwszy z nich **Sonar**, sprawdzi czy kod spełnia standardy zgodne z najlepsz |
|
|
|
|
|
**Gitlab CI (Continous Integration)** uruchomi wszystkie testy i spróbuje zbudować linie produkcyjną z Twoimi zmianami. Co nie oznacza, że zmiany zostały dołączone - to symulacja, żeby się upewnić, że po wprowadzeniu zmian, nic złego się nie stanie.
|
|
|
|
|
|
Na Slacku, na kanale z nazwą projektu w którym uczestniczysz (np. `#epomis` lub `#raicoone`) pojawią się notyfikację związane z pracą Jenkins.
|
|
|
Na Slacku, na kanale `#cicd`pojawią się notyfikację związane z pracą GitlabCI.
|
|
|
|
|
|
Jeśli coś pójdzie nie tak, zobaczysz tam komunikat `FAILED` z czerwonym paskiem. Klikamy odnośnik `Open` i logujemy się za pomocą **loginu i hasła znajdującego się na kanale `#general` w sekcji Pinned.** W menu `Logi konsoli` zazwyczaj na samym dole, znajdziemy przyczynę. Zostanie pokazany task gradle'owy (np. `:modules:persistence:compileJava FAILED`) i informacja, co dokładnie poszło nie tak.
|
|
|
Jeśli coś pójdzie nie tak, zobaczysz tam komunikat `FAILED` z czerwonym paskiem. Zostanie pokazany task gradle'owy (np. `:modules:persistence:compileJava FAILED`) i informacja, co dokładnie poszło nie tak.
|
|
|
|
|
|
Możemy taki task powtórzyć u siebie lokalnie, wchodząc w `View -> Tool Windows -> Gradle`, tam odnajdujemy interesujący nas moduł i uruchamiamy odpowiedni task. Druga możliwość to uruchomienie task'a z CLI. Wpisujemy w tym przykładzie `gradle :modules:persistence:compileJava`
|
|
|
|
|
|
Z Sonarem jest podobnie, zostaniemy poinformowani w miejscu w którym znajduję się Pull Request. Przy którejś linijce kodu, do której Sonar ma zastrzeżenia ujrzymy komentarz wyjaśniający powód zaniepokojeń i dodatkową sugestie, jak możemy rozwiązać problem.
|
|
|
Z Sonarem jest podobnie, zostaniemy poinformowani w miejscu w którym znajduję się Merge Request. Przy którejś linijce kodu, do której Sonar ma zastrzeżenia ujrzymy komentarz wyjaśniający powód zaniepokojeń i dodatkową sugestie, jak możemy rozwiązać problem.
|
|
|
|
|
|
Zachęcamy do zainstalowania [wtyczki SonarLint](https://plugins.jetbrains.com/plugin/7973-sonarlint) do IntelliJ. Dzięki temu, otrzymasz informację od Sonar'a jeszcze przed wypchnięciem kodu na serwer!
|
|
|
|
... | ... | |