Skip to content

Instantly share code, notes, and snippets.

@mariogarcia-ar
Created June 27, 2025 11:28
Show Gist options
  • Select an option

  • Save mariogarcia-ar/0210079664a95159c764f7addc7c708f to your computer and use it in GitHub Desktop.

Select an option

Save mariogarcia-ar/0210079664a95159c764f7addc7c708f to your computer and use it in GitHub Desktop.

✅ Estrategia Básica de Ramas para CI/CD

1️⃣ Ramas principales

  • main (o master): Siempre lista para producción.

    • Solo código estable y desplegable.
    • Rama protegida (requiere revisión de PR).
  • develop: Rama de integración.

    • Código más reciente, ya probado.
    • Despliegue automático en staging.

2️⃣ Ramas de soporte

  • Feature branches (funcionalidades)

    • Nombre: feature/<descripcion-corta>
    • Se crea desde: develop
    • Se fusiona en: develop
    • Uso: Desarrollar nuevas funcionalidades.
  • Bugfix branches (correcciones menores)

    • Nombre: bugfix/<numero-o-descripcion>
    • Se crea desde: develop
    • Se fusiona en: develop
    • Uso: Corregir errores no críticos.
  • Hotfix branches (correcciones críticas)

    • Nombre: hotfix/<numero-o-descripcion>
    • Se crea desde: main
    • Se fusiona en: main y develop
    • Uso: Arreglos urgentes en producción.
  • Release branches (opcional)

    • Nombre: release/<version>
    • Se crea desde: develop
    • Se fusiona en: main y develop
    • Uso: Preparar despliegues a producción (ajustes finales, pruebas).

3️⃣ Integración con CI/CD

  • Pipelines en Pull Requests/Merge Requests:

    • Ejecutan tests, linting y builds.
    • Bloquean merge si falla.
  • Rama develop:

    • Despliegue automático en entorno de staging.
  • Rama main:

    • Despliegue automático en producción.

4️⃣ Ejemplo de flujo

  1. Crear una funcionalidad:

    git checkout -b feature/pagina-login develop
    
  2. Subir cambios y abrir PR hacia develop.

  3. CI ejecuta tests en el PR.

  4. Merge a develop si pasa.

  5. develop se despliega en staging.

  6. Cuando está listo para producción:

    git checkout main
    git merge develop
    git tag v1.0.0
    git push --tags
    
  7. Despliegue en producción.


5️⃣ Diagrama (en texto)

main ----*-----------o------>
          \          /
           \        /
         release/x
            ^
           /
develop --o----o----o--------->
          \    \
         feature/a

6️⃣ Recomendaciones

✔️ Protege las ramas main y develop con reglas. ✔️ Exige revisiones de PR. ✔️ Requiere CI exitoso antes del merge. ✔️ Automatiza el versionado con tags. ✔️ Mantén las funcionalidades pequeñas y enfocadas.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment