Autor Zpráva
JanMatoušek
Profil
Ahoj,
začal jsem používat git, zatím jsem v začátcích, ale hodně se mi líbí.

Jen mě napadla taková představa, zda existuje nějaký způsob, jak si verze propojit s webhostingem. Konkrétně u Wedosu.

Líbilo by se mi něco takového, že bych se prostě rozhodl, že vývoj dané verze i s testy byl na localhostu úspěšný a chtěl bych tedy novou verzi nasadit na webhosting. úplně ideální by bylo, nejprve si to poslat na beta subdomenu a poté na ostrou verzi. V případě zjištění nějakého problému, bych vrátil předešlou verzi.

Existuje něco takového? zkoušel jsem hledal, ale nevěděl jsem, jak tu otázku přesně formulovat.

Předem děkuji za reakce
juriad
Profil
Pokud se jedná o webhosting, tak to možné není.
Jediné, co můžeš dělat, je naklonovat si repozitory u sebe do ještě jedné jiné složky a v ní udržovat stav identický s hostingem.
Kdykoli budeš chtít nasadit novou verzi, vlezeš do této složky, provedeš checkout stabilní verze a přes FTP sesynchronizuješ obsah.

Pokud bys měl VPS, tak tam máš mnohem větší možnosti.
JanMatoušek
Profil
díky za rychlou odpověď. zatím to zkusím takto krkolomě, ale asi přejdu časem na to VPSko
panterek
Profil
Nebo si založit vlastní virtuální server přes nějakou firmu co to nabízí (např www.virtualmaster.cz) nebo něco takového.. Pak bych doporučil GIT + buildovací software JENKINS.

Osobně to mám na vlastních serverech. Máme testovací a produkční prostředí. Obě jsou propojeny s gitem a jenkinsem.
Funguje to tak, že vývojové máš na localhostu, jakmile budeš mít u sebe hotovo, nasadíš na test, kde je konfigurace shodná s produkčními servery.
Tam zjistíš, jestli je nebo není vše ok, případně pošleš zákazníkovi odkaz na proklikání (vše z testu) a pokud je vše v pohodě, pošle se to teprve na produkci.

Nepotřebuješ žádné FTP, nic ...o vše se ti stará git a jenkins. GITem verzuješ, jenkins provede deploy/build (synchronizaci) na test/produkci.
Mám otestováno s netbeans, vše je otázkou "klik,klik"..

Nevýhoda takového řešení je, že si to holt musíš všechno nainstalovat / nastavit. A nevím, jaký by byl finanční rozdíl mezi webhostingem a vlastním serverem.


EDIT: Já jsem v*l, šak o VPS psal juriad :) Dobrý, tak nic :) Ale třeba ti pomůže ten Jenkins, o tom neví zas tolik lidí a je to luxusní záležitost.
A není nutné mít dva gity pro jeden projekt. GIT využívá větvení, takže jednu větev pojmenuješ třeba "test", druhou necháš defaultní (master = produkce) a pak provádíš push buď na test / produkci nebo na obojí zároveň.
V Jenkins se pak dá nastavit, že bude provádět build větve "test" nebo build větve "master", každé lze určit i jiné umístění (pač pro test mám jinou cestu projektu, než pro produkci).
juriad
Profil
panterek:
Samozřejmě, že bude mít víc větví: vývojovou, testovací, produkční. Bývá ale vopruz často měnit větev, jednodušší je (1) buď vícekrát naklonovat jedno repo do dvou adresářů, nebo (2) použít skript git new workdir – jedno repo, ale dva pohledy na něj ve dvou adresářích.
Honza T
Profil *
Hosting od blueboardu umi automaticky deploy z gitu. Psali o tom neco na blog.
joe
Profil
panterek:
Nepotřebuješ žádné FTP, nic ..
Znamená, že všechno verzuješ? Nelayoutové obrázky, věci ke stáhnutí - PDF, dokumenty, videa, ...?
panterek
Profil
to joe:
Ne ne, verzovaný je čistý projekt. Ve vývojovém prostředí mám čistou aplikaci a ta jde směrem na vzdálený server (případně lze ignorovat všechny složky, které nechceš, aby se do gitu zahrnuly). Na testovací i produkční se už dají sypat rozdílná uživatelská data (věci ke stáhnutí, PDF, dokumenty, videa...) a git to nijak neovlivní.

to juriad:
ono je to prostě o zvyku, tak jako se vším. Mně přijde jednodušší mít jeden git a tam třeba 10 větví. Používám linux a vždy mám otevřenou nějakou konzoli, takže přepnutí větve je otázkou asi 3 vteřin (git checkout <branch>)...to bych tak rychle ani nenaklikal :) Mimochodem ten build přes jenkins je taky na jeden "klik". Podporuje konzoli, takže mám jen jednu ikonu na kterou kliknu a dle nastavení provede build konkrétního projektu a do konkrétního prostředí. Čili commit > push > build je tak 15-20 vteřin..nejdýl vlastně trvá popisek commitu :)
joe
Profil
panterek:
Tím pádem ale potřebuješ přistupovat k FTP a nahrávat tam soubory, které potřebuješ. :-)
panterek
Profil
to joe:
já se bavil o datech, které si tam sype uživatel přes webové rozhraní přes funkci "upload". Jestliže tam dávám já jako admin tyto materiály, pak tyto materiály patří k webu = součást aplikace = součástí gitu.
čili na tvou otázku pak odpovídám ano, verzuju i tyto věci...pokud udělám deploy kdekoliv, tak to musí být plnohodnotný web se všemi daty, co k tomu patří. Přes ftp nic..
Jan Tvrdík
Profil
JanMatoušek
Už jsem na normálním počítači, takže odepíšu pořádně. Problém, který řešíš se obecně nazývá deployment (proces jak dostat web na hosting). Napojení deploymentu na verzovací systém (v tvém případě Git) je skutečně velmi dobrý nápad, blahopřeji ti k tomu, že tě napadl.

Řešení existuje několik
1) Použít hosting, který přímo deploy z Gitu umožňuje. Osobně vím akorát o hostingu od Blueboardu (viz článek na blogu a související technické informace), ale pravděpodobně bude existovat i další.
2) Pořídit si hosting, ke kterému dostaneš SSH přístup a možnost spravovat si tam Git repozitáře včetně nastavení hooku (u Wedosu bys musel mít VPSku). Viz např. článek od hracha.
3) Použít nějakou službu, které umí řešit deploy z Gitu na FTP (tohle můžeš použít i na Wedosu). Např. DeployHQ
4) Nebo dej prostě hledat na Google spojení „Git deploy“, najdeš ohromnou spoustu článků a nástrojů.


Teď ještě stručně k ostatním:

juriad:
Pokud se jedná o webhosting, tak to možné není.
Není pravda, viz např. odkázaný DeployHQ nebo Blueboard.

panterek:
Pak bych doporučil GIT + buildovací software JENKINS.
Tohle je super pro větší firmy, ale pro JanMatoušek by byl Jenkins brutální overkill. (Nutnost mít vlastní server nebo alespoň VPSku, strávit hromadu hodinu konfigurací apod.)
juriad
Profil
Jan Tvrdík:
Nepředpokládal jsem, že bude chtít kvůli možnosti deploye z gitu měnit hosting.
O http://www.deployhq.com/ jsem nevěděl. Přijde mi levnější VPS než toto; ale někomu se to může líbit.
Každopádně, díky ti za rozšíření obzorů.
panterek
Profil
Jan Tvrdík:
Je pravda, že se to užívá v softwarových firmách, z tama jsem si toto řešení také vytvořil.
Sám nejsem profesionální vývojář, ale to řešení se mi hodně líbilo, tak jsem si ho vybudoval...je také pravda, že instalace a konfigurace mi něco zabrala.
Samozřejmě proto, že jsem to neznal a na vše jsem musel přijít. Pak člověk ale přijde na to, že je to vlastně za chvilku, když zjistí, jak to funguje...
Práce s tím je ale naprostá balada..pro jeden projekt to však význam pravda nemá.

Jako obrovskou výhodu Jenkinse z pohledu admina považuji možnost spouštění skriptů před/po buildu.
Takže než dojde k buildu (nebo po buildu), tak se v systému něco provede, např z důvodu bezpečnosti úprava oprávnění pro každý projekt, ale toto zalíbení ocení asi jen správci serverů...
Buildy jdou i schedulovat, takže si udělám novou verzi, nastavím, že se má vybuildovat v čase XYZ a je to, odešle samozřejmě také mailovou notifikaci..
Jan Tvrdík
Profil
juriad:
Nepředpokládal jsem, že bude chtít kvůli možnosti deploye z gitu měnit hosting.
Zrovna deploy je jeden z důvodu, kvůli kterému se hosting mění docela běžně, ale samozřejmě ne vždy se to vyplatí. V nejhorším případě (je k dispozici jen FTP) jde vždycky použít phpfashion.com/ftp-deployment-nahravejte-pres-ftp-chytre (nebo alternativy).

Přijde mi levnější VPS než toto
Zvláštní, mně přijde, že DeployHQ má i free tarif.
juriad
Profil
Jan Tvrdík:
Zvláštní, mně přijde, že DeployHQ má i free tarif.

Tady se ti musím omluvit, tarify jsem nezkoumal; vycházel jsem z úvodní stránky: Get started today from just £6/month a No credit card needed - 10 day free trial!

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: