Automatický deployment Nette aplikací
- jiri.pudil
- Nette Blogger | 1032
Když používáte Git, co takhle navěsit test runner a minifier js a css na produkci jako pre-receive hooky?
- Marsme
- Člen | 75
jiri.pudil napsal(a):
Když používáte Git, co takhle navěsit test runner a minifier js a css na produkci jako pre-receive hooky?
A co automatické spouštění testů při nasazování do produkce?
- bazo
- Člen | 620
shameless plug:
nechcel by si vyskusat a otestovat tento nastroj? https://github.com/bazo/deployer
funguje to na podobnom principe ako napr pagodabox – vytvori sa novy
repozitar do ktoreho mozes pushovat,
ak si nastavis automaticky deploy tak pri kazdom pushi sa to nasadi
pripadne je moznost vyberat so ktory commit chces nasadit
podporuje to aj hooky
- enumag
- Člen | 2118
@bazo: To vypadá zajímavě, ale potřeboval bych správu repozitářů ponechat GitLabu a touhle aplikací řešit jen deployment (GitLab umí po pushi posílat upozornění na libovolnou URL). Tzn. potřeboval bych si tohle buď přiohnout anebo spíš z toho vypreparovat ty věci co se týkají deploymentu. Budu si muset zjistit k čemu mne zavazuje ta GNU GPL licence.
- bazo
- Člen | 620
tato appka nema nahradit spravu repozitarov, ten git repozitar je tam z toho dovodu aby si mal oddeleny hlavny repozitar od deployovacieho. ja mam napr zdroajky na bitbuckete. takze mam dve remotes v gite: origin a production. do originu maju pravo pushovat aj ini vyvojari, ale nechcem aby mali moznost spustat automaticky deploy.
zatial je umiestnenie repozitarov dane napevno, ale planujem pridat moznost si definovat vlastne.
slo by to naviazat aj na webhook, kedze pri deployi sa repo vzdy klonuje. v tomto pripade by si nemal historiu commitov.
je to zatial prisposobene mojim potrebam, ale nebranim sa rozsirovaniu, aby to bolo trosku univerzalnejsie
- enumag
- Člen | 2118
@bazo: No moc se mi kvůli tomu nechce instalovat mongodb… Ty repozitáře tak jak říkáš sice dávají smysl, ale já to mám vymyšlené ještě trochu jinak. Dva remote repozitáře mít nepotřebuji, GitLab umožňuje některé branche označit jako protected, čímž bych ostatním zabránil i deploy. Tzn. spíše budu muset tvé řešení oholit než rozšířit. ;-)
- mkoubik
- Člen | 728
https://gist.github.com/…2f79f67f18d2
Tasky:
run_tests
si doplňte podle toho co používátenewrelic_deployment
pokud používáte, nezapomeňte vyplnit appname a apikey vconfig/application.rb
push_deploy_tag
otaguje release v gitu, takže je dohledatelný i po force-pushrestart
jen maže tempfinalize_update
nastavuje zápis do požadovaných adresářů a vytváří symlinky na shared adresářemigrate
spouští doctrine migraceweb:disable
aweb:enable
přepíná maintenance mód, se současným sandboxem nefunguje, upravte si index.php aby requirovalsystem/maintenance.html
jen když existujedefault
si poskládejte jak potřebujete, třeba si tam můžete přidatweb:disable
předupdate
aweb:enable
porestart
.
Edit: je to taková splácanina defaultních tasků a nově napsaných, tak to berte spíš pro inspiraci. Asi by neškodilo to celý přepsat.
Editoval mkoubik (8. 7. 2013 19:31)