Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Import projektu z gita
Forum PHP.pl > Forum > Kontrola i zarządzanie projektami
athabus
Witam,

mam takie pytanko. Załóżmy, że mam repozytorium gita z projektem.

Na serwerze produkcyjnym chciałbym uruchomić projekt tak, aby w każdej chwili móc go łatwo zaktualizować od najnowszej wersji z repozytorium. Pytanie jak to zrobić?

Oczywistym wydaje się "git clone repozytorium", ale pytanie czy dobrym pomysłem jest przechowywanie całego repozytorium na serwerze, gdzie zmiany mogą zajmować na prawdę dużo miejsca i pomijam już tu kwestie bezpieczeństwa.

Czy jest jakiś lepszy sposób na to?
mike
Ja bym przede wszystkim postawił narzędzie co Continuous Integration, które pobierze Ci kod źródłowy i zbuduje projekt.
Przy czym wykona jakąś tam walidację kodu, testy, wygeneruje dokumentację, e.t.c. a potem zrobi deploy na serwer produkcyjny.

Postaw do tego Hudson'a. Można go zintegrować z PHP.
Nie wiem czy znasz tego typu narzędzia ale zastosowanie go wydaje się być najrozsądniejsze.
athabus
Dzięki za odpowiedź. Wygląda ciekawie, ale chyba zbyt skomplikowane podejście dla mojego małego projektu.

Niemniej w wolnej chwili poczytam bo lubię takie zabawki :-)

Wracając do tematu, to szukam czegoś prostszego - nie wiem czy jest jakieś dobre podejście opierające się o samego git'a?
mike
Cytat(athabus @ 19.11.2010, 14:51:46 ) *
Wracając do tematu, to szukam czegoś prostszego - nie wiem czy jest jakieś dobre podejście opierające się o samego git'a?
No właśnie złe winksmiley.jpg dlatego zaproponowałem narzędzie pośrednie. Serwer ciągłej integracji.
Napisanie jakiegoś skryptu, który zrobi pull'a z repozytorium i wgra co trzeba tam gdzie trzeba nie będzie trudne ale za mało kontroli nad tym będziesz miał.
Pamiętaj, że w repo może wpaść wszystko. Jakieś literówki, pomyłki, błędy, e.t.c. a Ty chcesz to od razu na produkcję pchać.
Hudson zapewni, Ci, że to co masz w repo przejdzie przez sito sprawdzania poprawności i dodatkowo będzie ewidencjonowane. Dostaniesz informację, która wersja się zbudowała (choć to tylko PHP) a która nie. No i zawsze będziesz wiedział, która rewizja aktualnie biega po produkcji. Ja bym poszedł w ciągłą integrację tym bardziej, że jak już spróbujesz to okaże się, że to wcale nie jest złożone.
athabus
W sumie to może i masz rację. Do tej pory stosowałem podejście z gałęziami gdzie gałąź master była tym co zawsze działało z testami etc. Czyli struktura była mniej więcej taka:

-Master (zawsze gotowa do publikacji)
--Dev (tu wszystko musi przechodzić testy aby trafić do master - taka przejściówka, aby śmieci nie trafiały do mastera)
---Gałęzie wychodzące z wersji dev

Twoje podejście jest fajne - jedyne co mnie martwi, że cała ta "otoczka" zaczyna wyglądać śmiesznie w porównaniu z skryptami, które piszę - sam rozumiesz, klepie sobie skrypty amatorsko w domu, a stosuje rozwiązania o których nawet wiele kiepskich firm informatycznych/agencji nie słyszało ;-)
Z drugiej strony tak samo myślałem o kontroli wersji, a teraz nie wiem jak sobie radziłem bez niej.

W weekend przetestuje bo z opisu wygląda dość skomplikowanie, ale skoro piszesz, że nie jest tak źle to spróbuję.
krowal
Może coś takiego jak springloops będzie Ci odpowiadało. Niestety to nie GIT tylko SVN, ale polecam zajrzeć, chociażby dlatego, że to polski projekt i niestety chyba dość mało znany. Jest to zwykłe repozytorium SVN, do którego można podpiąć automaty robiące automatycznie/manualnie (wg ustawień) przerzut plików na serwer ftp. Do każdego projektu można dodać kilka takich deploy'ów. Niestety darmowe konto ma limit jednego serwera ftp na projekt, na który można zrobić trzy deploye w ciągu dnia. Przy małych prywatnych projektach wystarcza. smile.gif
wookieb
A hudson jest darmowy i możesz z nim robić co chcesz. Nie wspomnę o takich drobnostkach jak przegranie na FTP.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.