La nueva interfaz y sistema de control de repositorios Git no solo incluye cambios visuales para hacer más sencilla la gestión, también opciones internas para crear estrategias de puesta en producción de nuestros cambios, conocido como deploy.
Para un caso ejemplo detallado te recomendamos consultes nuestro manual "configurar deploy automático desde GitHub a cPanel - Caso ejemplo".
Se trata de un fichero en formato YAML, en el cual por medio de una sintaxis sencilla podemos establecer las acciones que se realizarán al hacer un deploy de cambios en nuestro entorno en producción, esto puede ser útil para ejecutar tareas específicas, realizar copia de ficheros a un directorio público, y en general cualquiera acción que puedas programar por medio de un comando o script.
El fichero .cpanel.yml
debe ser creado dentro del repositorio en el que quieras usarlo, debe tener el nombre tal cual, incluido el punto delante y su contenido seguiría la siguiente sintaxis:
--- deployment: tasks: - export DEPLOYPATH=/home/user/public_html/ - /bin/cp index.html $DEPLOYPATH - /bin/cp style.css $DEPLOYPATH
En este ejemplo las tres primeras líneas serían la base, por un lado abrimos el formato con ---
, añadimos deployment:
y en un nivel inferior tasks:
, a continuación definimos las acciones que se deberán realizar.
En este ejemplo hemos creado una constante llamada $DEPLOYPATH
cuyo valor es el directorio donde queremos hacer algunas acciones, la creamos para evitar definir el directorio en las siguientes acciones pudiendo usar simplemente la constante.
Tras esto ejecutamos /bin/cp
, este comando copia los ficheros index.html y style.css al directorio público definido en la constante, es un ejemplo muy simple donde usamos los ficheros modificados de nuestro repositorio para copiarlos a un directorio público y que la web se actualice con los cambios efectuados.
Que acciones realices dependerá de tu estrategia de puesta en producción, simplemente sigue la misma sintaxis y podrás realizar tantas acciones como necesites.
Imagina que dispones de un repositorio local conectado con el repositorio remoto alojado en tu cuenta cPanel, si ejecutas git push
para enviar los cambios al repositorio remoto, se producirá la ejecución de un hook, que es básicamente una acción automática, de forma que si dispones de un fichero .cpanel.yml
con una estrategia de deploy definida, este hook lo ejecutará automáticamente en cada push que realices.
Si en cambio tomamos las modificaciones por medio de pull, la acción es similar, se ejecuta un hook que a su vez ejecuta la estrategia de deploy definida en el fichero .cpanel.yml
.
Por ejemplo, tenemos nuestro repositorio local conectado con GitHub y hacemos un push a Github para aplicar nuestros cambios.
A su vez el repositorio de cPanel se encuentra clonado desde el alojado en Github, por lo que podemos acceder a la interfaz de gestión de Git y hacer "Update from remote", esto hará que se tomen los cambios y a su vez se ejecute nuestra estrategia de deploy, aplicando en consecuencia las acciones del fichero .cpanel.yml
de existir.
La API de cPanel nos permite como opción adicional el poder definir una tarea automática en el intervalo que deseemos, y que ejecute nuestra tarea de deploy, para ello simplemente tendríamos que configurar la tarea desde cPanel con el comando:
/usr/local/cpanel/bin/uapi VersionControlDeployment create repository_root=/home/user/example
Teniendo en cuenta que /home/user/example
sería la ruta a nuestro repositorio.