Autora nejznámějšího českého frameworku, Davida Grudla, asi není potřeba představovat. Každý znalý PHP o něm určitě slyšel. I když jsem osobně Nette nikdy neviděl a nemůžu soudit, nástroj FTP Deployment je rozhodně povedený a schopný.
Je podobný, jako Michalem dříve zmíněný git-ftp, jen ke svému fungování nepotřebuje git. Změny v souborech porovnává pomocí MD5 hashů všech souborů, které jsou poté v jediném komprimovaném souboru .htdeployment nahrané na FTP server. Při příštím deployi se tedy nahrají pouze změněné soubory a bude tak probíhat mnohem rychleji.
Nastavení, hooky, vzdálené i lokální příkazy
Konfigurační soubor umožňuje základní nastavení připojení k serveru, kde podporované protokoly jsou FTP, SFTP a FTPS. Nastavení je dost přímočaré a okomentované v ukázce.
; Sekcí lze mít více, každá se svým remotem a nastavením [server1] ; Jediný povinný atribut je remote remote = ftp://uzivatel:heslo@example.com/path/on/server/ ; Pasivní mód je v defaultu zapnutý passiveMode = no ; Ignorování souborů a složek, které nenahrávat ignore = " .git* /config wp-config.php wp-content/uploads/* " ; Libovolné hooky před nahráváním souborů before[] = http://example.com/deployment.php?before before[] = local: grunt build ; Vymazat obsah složky cache po nahrání souborů purge[] = cache/template purge[] = cache/database ; Hooky po skončení nahrávání after[] = remote: chmod 0777 cache/template after[] = upload: config/server1.php wp-config.php after[] = http://example.com/deployment.php?after ; Zakázání minifikaci css a js souborů, což je defaultní chování preprocess = no
Konfigurační soubory
V nástroji DeployHQ, který je bohužel placený, lze specifikovat konfigurační soubory, které se nahrávají pokaždé. Stejné chování je možné i s tímto nástrojem. Stačí je vložit do složky, v případě výše config, která se dá do ignore aby se nenahrávala. Poté pomocí hooku upload: lze nahrát soubory i z ignorovaných složek.
Instalace a použití
Z Githubu lze stáhnout jeden PHAR soubor, který stačí spouštět z příkazové řádky. Pro nejnovější změny před oficiálním releasem je ale možné stáhnout z gitu zdrojáky.
Použití je velmi jednoduché, protože se vše nastavuje v konfiguračním souboru, umožňuje FTP Deployment pouze minimum parametrů a přepínačů.
# Spustí deploy deployment deployment.ini # Spustí deploy v testovacím režimu, nic na server nenahrává deployment deployment.ini --test # Pouze vygeneruje soubor s hashi souborů a nahraje na FTP deployment deployment.ini --generate
Vlastní úpravy
Někdy bych rád využil i jiné funkce, než které FTP Deployment nabízí. Jednu takovou jsem již přidal pomocí pull-requestu. Jiné ale podle historie issues přidané nikdy nebudou.
Proto jsem vytvořil custom branch, do které přidávám další vlastní rozšíření.
Používáte FTP Deployment, nebo jiný nástroj? Podělte se v komentářích.
K tomuto článku již není možné přidávat další komentáře
Komentáře
Ahoj,
tento deploy jsem používal taktéž. Dlouhou dobu fungoval bezproblému. Pak jsem delší dobu na projekty, které jej používaly nesáhl, a nyní se mi děje to, že mi v průběhu uploadu nebo i během testu soubor .ini přes který se deploy provádí smaže.
Asi to bude něco u mě, ale fakt nevím co za tím může vězet.
Windows 10 -> https://github.com/dg/ftp-deployment/issues/161
Nenapadá tě, co by za tím mohlo být?