Tabla de Contenidos

Repositorio de Código Fuente

En el mundo del desarrollo de software, la gestión eficaz del código fuente es crucial para el éxito de cualquier proyecto. Un repositorio de código fuente centralizado proporciona un lugar seguro para almacenar, organizar y colaborar en el desarrollo del código. Gitlab, una plataforma de gestión de repositorios Git líder, ofrece una amplia gama de funciones para facilitar la colaboración y el control de versiones del código.

En esta sección, se presenta la definición de un repositorio de código fuente para la empresa ADA, utilizando Gitlab y el flujo de trabajo Gitflow.

Gitlab: La Plataforma Elegida

Gitlab se ha convertido en la plataforma de gestión de repositorios Git preferida por muchas empresas debido a su conjunto completo de funciones, escalabilidad y facilidad de uso. Ofrece una interfaz web intuitiva, herramientas integradas para la gestión de tareas, seguimiento de errores y CI/CD (Integración Continua y Entrega Continua).

Flujo de Trabajo Gitflow: Estructurando el Desarrollo

El flujo de trabajo Gitflow es un modelo de ramificación ampliamente utilizado para organizar el desarrollo de software en Git. Proporciona una estructura clara para crear, fusionar y eliminar ramas, asegurando que los cambios de código estén bien definidos y sean rastreables.

Beneficios de la Implementación

La implementación de un repositorio de código fuente en Gitlab con el flujo de trabajo Gitflow para la empresa ADA ofrece numerosos beneficios:

Flujo de trabajo - GitFlow ADA

El flujo de trabajo Gitflow es un modelo de ramificación que ayuda a los equipos a gestionar el desarrollo y la colaboración de código de manera eficaz. Proporciona un enfoque estructurado para crear, fusionar y eliminar ramas, asegurando que los cambios de código estén bien definidos y sean rastreables.

A continuación se describen los elementos que hacen parte de ese flujo y como se utilizará en la compañía siguiendo el estandar recomendado. Según el siguiente gráfico:

Ramas

El flujo de trabajo Gitflow utiliza varias ramas para organizar y gestionar el desarrollo del código:

Definición de ramas para la fábrica

La empresa por varios años ha utilizado un repositorio svn para la gestión del código fuente de los desarrollos. Teniendo presente ese enfoque, el personal actual y el flujo de los procesos actuales de implementación de cambios, mejoras o nuevos desarrollos se hace esta definición de ramas en la nueva migración.

Roles y Responsabilidades

El flujo de trabajo Gitflow define roles y responsabilidades para los miembros del equipo:

Definición de Roles y Responsabilidades

Al igual que las ramas del repositorio anterior, la empresa por varios años ha utilizado una estructura simple de gestion de ramas la cual es branches para desarrolladores, trunk para qa y tags para liberaciones en produccion. Teniendo presente ese enfoque, el personal actual y el flujo de los procesos actuales de implementación de cambios, mejoras o nuevos desarrollos se hace esta definición de roles en la nueva migración.

Procesos

El flujo de trabajo Gitflow implica procesos específicos para gestionar los cambios de código:

Consideraciones previas

Creación de una Rama Feature:

Finalización de una Rama Feature:

Revisión y Fusión de una Rama Feature:

Creación de una Rama Release:

Prueba y Finalización del Release:

Fusión de la Rama Release:

Plantilla CI

# This file is a template, and might need editing before it works on your project.
# To contribute improvements to CI/CD templates, please follow the Development guide at:
# https://docs.gitlab.com/ee/development/cicd/templates.html
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml
 
# This is a sample GitLab CI/CD configuration file that should run without any modifications.
# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts,
# it uses echo commands to simulate the pipeline execution.
#
# A pipeline is composed of independent jobs that run scripts, grouped into stages.
# Stages run in sequential order, but jobs within stages run in parallel.
#
# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages
image: maven:3.9.6-amazoncorretto-21  # Ajustar la etiqueta de la imagen si es necesario
variables:
  MAVEN_CONFIG: 'settings.xml'
stages:          # List of stages for jobs, and their order of execution
  - build
  - test
  - deploy

build-job:       # This job runs in the build stage, which runs first.
  stage: build
  script:
    - echo "Compiling the code..."   
    - mvn clean package -Dsettings.security=none # Ajustar el comando para Gradle    
    - echo "Compile complete."

unit-test-job:   # This job runs in the test stage.
  stage: test    # Etapa opcional para pruebas unitarias
  script:
    - echo "Running unit tests..."
    - mvn test
    - echo "Test Complete"

deploy-job:      # This job runs in the deploy stage.
  stage: deploy  # Etapa opcional para implementación (reemplazar con su estrategia de implementación)
  script:
    - echo "Deploying application..."
    - scp target/*.jar gestion@10.1.140.21:/opt/ada/deploy/cicd  # Reemplazar con sus detalles de implementación
    - echo "Application successfully deployed."

Flujo Git

Conclusión

La adopción de Gitlab como plataforma de gestión de repositorios Git y el flujo de trabajo Gitflow para la empresa ADA proporcionará una base sólida para el desarrollo de software eficiente, colaborativo y escalable. Esta combinación permitirá a ADA gestionar su código fuente de manera efectiva, mejorar la colaboración entre equipos y acelerar el desarrollo de productos.

←Volver atrás