Guía de Git

Guía de Git: Despliegue

Introducción

La función Git Version Control de cPanel (cPanel → Archivos → Git Version Control) permite desplegar código de repositorios gestionados en tu cuenta.
El despliegue normalmente envía código finalizado al entorno de producción, por ejemplo, para aplicar cambios a tu sitio web.

Puedes configurarlo para que:

  • Push deployment: despliegue automático al hacer push desde tu equipo.
  • Pull deployment: despliegue manual desde la interfaz de cPanel.

Requisitos para el despliegue

Antes de que un repositorio pueda desplegarse, debe cumplir con:

  • Tener un archivo válido .cpanel.yml en la raíz del repositorio.
  • Contar con una o más ramas locales o remotas.
  • Tener el árbol de trabajo limpio (sin cambios pendientes).

Si no se cumplen estas condiciones:

  • No se mostrará información de despliegue en la interfaz.
  • El botón o la función de despliegue estarán deshabilitados.

El archivo .cpanel.yml

Este archivo define cómo y dónde se publican los cambios.
Debe crearse y agregarse al control de versiones (commit) en la carpeta raíz del repositorio.

Importante:

- Los ejemplos de abajo son ilustrativos, debes adaptarlos a tu entorno.

- No uses comodines (*) para copiar todo, ya que podrías subir contenido no deseado (como la carpeta .git).

- Evita caracteres no válidos en YAML. Consulta yaml.org para detalles.

Ejemplo: desplegar archivos individuales

---
deployment:
tasks:
- export DEPLOYPATH=/home/example/public_html/
- /bin/cp index.html $DEPLOYPATH
- /bin/cp style.css $DEPLOYPATH
  • Línea 1: inicio del documento YAML.
  • Líneas 2-3: definición de claves deployment y tasks.
  • Líneas 4-6: lista de comandos Bash que se ejecutarán durante el despliegue.
    Puedes añadir tantos como necesites.
  • Para comentarios, comienza la línea con #.

Ejemplo: desplegar un directorio completo

---
deployment:
tasks:
- export DEPLOYPATH=/home/example/public_html/
- /bin/cp -R images $DEPLOYPATH
  • Línea 1: inicio del documento YAML.
  • Líneas 2-3: definición de claves.
  • Líneas 4-5: comandos para copiar todo un directorio (opción -R para recursivo).

Despliegue automático (Push deployment)

  • cPanel añade automáticamente un hook post-receive a todos los repositorios que gestiona.
  • Cuando haces un git push hacia un repositorio en cPanel que contiene un .cpanel.yml válido:
    1. El hook ejecuta el archivo .cpanel.yml.
    2. Se copian los cambios a la ruta de producción (por ejemplo, public_html).

Ventajas:

  • Un solo comando (git push) actualiza el sitio.
  • Ideal para flujos de trabajo donde el código se prueba en local y se publica directamente.
También puedes reejecutar el despliegue manualmente sin necesidad de subir nuevos cambios.

Despliegue manual (Pull deployment)

  • Se utiliza cuando el repositorio en cPanel obtiene cambios desde un remoto (no directamente desde tu equipo).
  • Flujo:
    1. Desde tu equipo, haces git push hacia el repositorio remoto (por ejemplo, GitHub).
    2. En cPanel, entras a Manage → Pull or Deploy.
    3. Pulsas Update from Remote para traer cambios.
    4. Pulsas Deploy HEAD Commit para ejecutar el .cpanel.yml y aplicar los cambios en producción.

Ventajas:

  • Control total sobre cuándo se aplican los cambios.
  • Útil si varios colaboradores suben cambios a un repositorio central antes de desplegar.