Continuous Delivery via FTP.

¿Continuous Delivery con FTP? ¡Es posible!
Normalmente, se utilizan herramientas conocidas y con las que se pueden hacer un montón de cosas chulas, como Ansible, Deployer, Capistrano etc. Aún así, hay ocasiones en donde nuestro desarrollo es mucho más sencillo, no usamos Composer, no necesitamos correr scripts o yo que sé, simplemente, necesitamos una herramienta que sea capaz de hacer un deploy desde una rama de Git.

Otro escenario, puede ser un servidor económico, si, de esos como Bluehost, en donde hacer cosas vía SSH es complicado o no nos dan acceso via Secure Shell.  Cualquiera que sea la razón, no te preocupes, tenemos forma de hacerlo funcionar mediante FTP.

Para instalar en Mac:
Necesitamos el Xcode y las «command line tools, lo podemos instalar con el siguiente comando:

$ xcode-select --install

Después usaremos Homebrew para instalar Git FTP:

$ brew install git
$ brew install curl --with-libssh2
$ brew install brotli
$ brew install git-ftp

Para instalar en otros sistemas, podemos ver las instrucciones detalladas acá:
https://github.com/git-ftp/git-ftp/blob/master/INSTALL.md

Ahora, vamos a configurarlo, para ello, entramos al directorio de nuestro proyecto y ejecutamos:

$ cd proyecto/
$ git config git-ftp.url "ftp://ftp.dominio.com:21/doc_root"
$ git config git-ftp.user "mi_usuario_ftp"
$ git config git-ftp.password "mi_password_ftp"

Por ultimo pero no menos importante, como usarlo.
La primera vez, debemos subir todo, entonces ejecutamos:

$ git ftp init

Si ya hemos subido cosas o lo que sea, si lo que necesitamos es subir solo los que falte en el servidor:

$ git ftp catchup

Y para su uso normal, ejecutamos el git ftp push. Por ejemplo, después de haber hecho un commit en Git, ejecutamos:

$ git ftp push