Saltar al contenido principal

Flujo de trabajo de desarrollo

Este tutorial te guía a través del flujo de trabajo recomendado para desarrollar Odoo en Skysize: escribir código localmente, validarlo en un entorno de pruebas (staging) y luego lanzarlo a producción.

Tiempo para completar: ~20 minutos (configuración), luego continuo

Lo que necesitas:

  • Una rama de producción ya desplegada (Despliega tu primera instancia)
  • Un plan de pago o de prueba (los entornos de staging requieren una suscripción)

Resumen

Skysize admite tres tipos de ramas que se mapean directamente con las tres fases de un flujo de trabajo de desarrollo:

Tipo de ramaPropósitoBase de datos¿Auto-eliminada?
ProducciónEntorno en vivo, usuarios realesPersistenteNunca
StagingPruebas previas al lanzamiento, refleja producciónPersistenteNunca
DesarrolloIteración rápida, pruebas desechablesEfímeraDespués de 24h

El flujo recomendado es:

máquina local → rama de desarrollo → rama de staging → rama de producción

Paso 1 — Configura tu entorno de desarrollo local

Antes de tocar Skysize, asegúrate de que puedes ejecutar Odoo localmente. Aquí es donde escribes y pruebas inicialmente tus cambios.

  1. Clona tu repositorio:

    git clone [email protected]:tu-org/tu-repo-odoo.git
    cd tu-repo-odoo
  2. Crea una rama de funcionalidad (feature branch):

    git checkout -b feature/mi-nueva-funcionalidad
  3. Ejecuta Odoo localmente contra una base de datos local. Consulta la documentación de Odoo para obtener instrucciones de configuración específicas para tu versión.

  4. Desarrolla y prueba tus cambios localmente hasta que estés satisfecho.


Paso 2 — Crea una rama de desarrollo en Skysize

Las ramas de desarrollo en Skysize son entornos ligeros y de corta duración. Se activan bajo demanda y se limpian automáticamente después de 24 horas de inactividad, por lo que puedes crear tantas como necesites sin preocuparte por el costo.

  1. Empuja tu rama de funcionalidad a tu repositorio:

    git push origin feature/mi-nueva-funcionalidad
  2. En Skysize, ve a tu proyecto y abre la pestaña Branches (Ramas).

  3. Busca feature/mi-nueva-funcionalidad en la lista de ramas.

  4. Haz clic en ella y establece el tipo de rama como Development (Desarrollo).

  5. Establece la acción On Push (Al empujar) como Create New (Crear nuevo).

    • Esto despliega una instancia de Odoo fresca con una base de datos vacía cada vez que empujas código.
    • Úsalo para probar funcionalidades aisladas que no dependen de datos existentes.
  6. Haz clic en Save (Guardar), luego en Deploy (Desplegar) (o simplemente empuja un nuevo commit).

  7. Una vez que la construcción sea exitosa, abre la instancia y verifica que tu funcionalidad funcione como se espera.

nota

Los entornos de desarrollo utilizan datos de demostración de forma predeterminada y no comparten datos con tu base de datos de producción. Están destinados a la validación a nivel de código, no para pruebas con datos reales.


Paso 3 — Validar en staging

Una vez que tu funcionalidad funcione en desarrollo, promuévela a staging para probarla contra una copia realista de tus datos de producción.

Crea una rama de staging

  1. Fusiona (o haz cherry-pick de) tu rama de funcionalidad en una rama de staging dedicada. Muchos equipos usan una rama llamada staging o pre-production:

    git checkout staging
    git merge feature/mi-nueva-funcionalidad
    git push origin staging
  2. En Skysize, abre la pestaña Branches y busca la rama staging.

  3. Establece el tipo de rama como Staging.

  4. Establece la acción On Push como Update (Actualizar).

    • Esto actualiza el código de la instancia en ejecución en cada empuje mientras preserva la base de datos.
    • Tu entorno de staging mantiene sus datos entre despliegues, para que puedas probar los flujos de trabajo de extremo a extremo.
  5. Haz clic en Save.

Reconstruir staging desde producción (opcional pero recomendado)

Para que staging refleje tus datos de producción actuales:

  1. En la rama de staging, haz clic en Rebuild (Reconstruir).
  2. Skysize tomará una instantánea de tu base de datos de producción y la restaurará en el entorno de staging.
  3. Espera a que se complete la reconstrucción, luego verifica tu funcionalidad contra datos reales.
atención

Reconstruir staging reemplaza su base de datos con una copia de producción. Cualquier dato introducido directamente en el entorno de staging se perderá.


Paso 4 — Lanzamiento a producción

Una vez que se haya validado en staging, despliega en producción.

  1. Fusiona tus cambios en tu rama de producción:

    git checkout main
    git merge staging
    git push origin main
  2. En Skysize, abre la pestaña Branches y busca tu rama de producción.

  3. Verifica la acción On Push:

    • Update — el despliegue se activa automáticamente al empujar. Bueno para equipos que envían cambios con frecuencia y no quieren pasos manuales.
  4. Monitorea el estado de la construcción. Cuando muestre Success (Éxito), tus cambios estarán en vivo. Si la actualización falla, ocurrirá una reversión para asegurar que no se pierdan datos.

nota

Skysize actualiza todos los módulos personalizados en despliegues de Update, lo que actualiza todos los módulos instalados actualmente. Si agregaste un nuevo módulo a tu código, no se instalará automáticamente — aún necesitas instalarlo desde el menú Apps de Odoo después del despliegue.


Resumen de la configuración de ramas recomendada

RamaTipoOn PushNotas
mainProducciónUpdateActualización automática
stagingStagingUpdateActualización automática, reconstrucción desde prod según sea necesario
feature/*DesarrolloCreate NewEfímera, una por funcionalidad

Consejos

  • Mantén staging sincronizado: Reconstruye staging desde producción regularmente para que tus pruebas reflejen condiciones reales.
  • Usa ramas de desarrollo liberalmente: Son gratuitas de crear y se auto-eliminan, así que crea una por funcionalidad o corrección de errores.
  • Protege tu rama de producción: En GitHub/GitLab, requiere revisiones de pull requests antes de fusionar en main para evitar empujes accidentales.
  • Monitorea los despliegues: Revisa los registros de despliegue en el tablero de Skysize si una construcción falla. La mayoría de los fallos son causados por una dependencia de Python faltante o un error XML en un módulo.