Flujo de trabajo de Git desde local a bitbucket / github hub a un server web en vivo

Me gustaría configurar un flujo de trabajo que permita realizar cambios locales en Bitbucket o Github (pero idealmente en el primero) que luego actualice un sitio en vivo alojado en mi server VPS de la lámpara. es posible? Recuerdo haber trabajado hace un time con un equipo que tenía una configuration similar pero con Github.

Hay un artículo de Joe Maller http://joemaller.com/990/a-web-focused-git-workflow/ que describe un enfoque similar en el que el concentrador es otro directory en el mismo server web.

Ese tipo de acción post-push se gestiona:

  • en GitHub con webhook (gancho post-recepción)
  • en BitBucket con Service hooks como " broker "
    Ver más en " POST hook management ".

En ambos casos, esos ganchos generan un gancho POST que pasa una carga a su aplicación web de terceros a través de su API.
Su aplicación de terceros es responsable de recibir y transformar la carga útil.

Eso significa que su server VPS de la lámpara necesita tener un oyente en el lugar capaz de interpretar dicha carga útil.
Puede ver un ejemplo de un script que gestiona una implementación en este artículo , haciendo un git pull :

  // Make sure we're in the right directory exec('cd '.$this->_directory, $output); $this->log('Changing working directory... '.implode(' ', $output)); // Discard any changes to tracked files since our last deploy exec('git reset --hard HEAD', $output); $this->log('Reseting repository... '.implode(' ', $output)); // Update the local repository exec('git pull '.$this->_remote.' '.$this->_branch, $output); $this->log('Pulling in changes... '.implode(' ', $output));