Jak zrobić projekt po bożemu z CD, GitHub?

0

Mam powierzchowną wiedzę na różne tematy około devopsowe, ale nie czuję się zbyt pewnie w żadnym i potrzebuję porad.
Chcę stworzyć projekt portalu w Laravelu + Angular razem z 1 osobą. Ma to być hobbystyczny/uczelniany projekt który ewentualnie w przyszłości mógłby przerodzić się w coś poważniejszego.
Do tej pory pracowałem z .NET/C# używając gita na TFSie, ale nie zajmowałem się budowaniem. Nie wiem też jakie są istotne różnice między TFSem a GitHubem.
Kod ma być pushowany na GitHub do publicznego repo, oddzielne funkcjonalności w granicach rozsądku na oddzielnych branchach. To co jest na mastrze ma być wystawione na publicznym serwerze. My, programiści będziemy sobie pisać lokalnie.
Pierwsze nasuwające się pytania:

  1. Czy mam utworzyć do tego organizację na GitHubie, czy utworzyć na swoim prywatnym koncie? Druga osoba powinna zrobić forka? Jakie są zwyczaje? Nie chcę, żeby druga osoba poczuła się jakbym ja tu szefował.
  2. Czy mogę użyć hostingu (linuxpl.com), czy musi to być jakiś dedykowany serwer ze względu na jakieś ograniczenia dostępu? Wiem, że dla samego Laravela wystarcza, ale Angulara znam tylko z jednego kursu na Udemy.
  3. O czym powinienem poczytać, aby potrafić skonfigurować to całe budowanie. Wiem, że istnieją takie usługi jak Jenkins, Travis, ale nie za bardzo się orientuję co one robią. Który powinienem wybrać?

Wszelkie sugestie będą mile widziane. Jeżeli coś wymyśliłem bez sensu to piszcie.

1

Na githubie macie kod i issues. Jeśli ten projekt ma żyć długo, warto założyć organizację z uwagi chociażby na to że pewnie będziecie mieć później jakieś osobne repozytoria. Zakładam że macie flow typu feature branches + stabilny master. Mastera ustawić jako protected branch z możliwością zmian pochodzącą tylko z pull requestów. Core developerzy (więc wasza dwójka) powinni mieć dostęp do zapisu bezpośrednio na repo, osoby z zewnątrz sobie forkują repo i stamtąd wystawiają pull requesty. Travis to narzędzie wspomagające CI - główne zadanie to przede wszystkim weryfikacja jakości kodu który ma wylądować w waszym repo. Pod to podpinacie budowanie, testy, analizę statyczną - wszystko odpalane dla każdego pull requestu (Travis powinien sobie sklonować repo, zmergować branch w mastera, na tym dopiero coś odpalać). Sam deployment powinien odpalić się po zmianach w masterze, możecie to deployować gdzie chcecie o ile macie to jak oskryptować - więc na przykład jak master się zmieni to czymś typu ansible możecie zdeployować to sobie na swój serwer. Travis zarządza sekretami typu klucze ssh i inne cuda. Używajcie też githuba do śledzenia releasów. Oczywiście są tez takie aspekty jak długo trwające testy akceptacyjne (budowanie jednego commitu przez 30 minut to nieporozumienie) - trzeba je wcisnąć jakoś w ten flow. To jest takie proste zarządzanie projektem "na studenta".

1

TfuFS to kontrola wersji, system buildów, issue tracker i pewno coś jeszcze.
GitHub to tylko kontrola wersji oraz issue tracker, jeśli chcesz budować i wdrażać aplikacje, to potrzebujesz dodatkowego narzędzia, takiego jak np. Jenkins lub TeamCity.

1 użytkowników online, w tym zalogowanych: 0, gości: 1