GitLab, la completa herramienta integrada para desarrollo de software

Escrito por el , actualizado el .
planeta-codigo software software-libre
Enlace permanente Comentarios

Al desarrollar software una herramienta de control de versiones como Git y otras como un gestor de peticiones, una herramienta de integración continua o despliegue contínuo o una wiki para documentación son necesarias. Hay productos específicos para cada uno de ellos pero GitLab proporciona en una único producto todas estas facilitando su instalación y administración estando integradas en el mismo producto.

GitLab

Usar una herramienta de control de versiones para el código fuente de un proyecto o programa es imprescindible para recuperar versiones anteriores de los archivos, comparar y compartir los cambios con el resto de desarrolladores del equipo. Otras herramientas imprescindibles son un gestor de peticiones para documentar cuál es el trabajo a realizar, ver en que se está trabajando, priorizar el trabajo inmediato que se realizará y el estado de cada petición. Por otro lado una herramienta donde recoger documentación del proyecto ayuda a compartir información y hacer que ese conocimiento quede recogido en algún lugar que pueda ser consultado con posterioridad o para futuros desarrolladores. También en estos días es imprescindible una herramienta para automatizar la ejecución de las pruebas unitarias y funcionales en cada commit al repositorio de código fuente.

Para cada una de estas funcionalidades hay herramientas específicas: Git para la herramienta de control de versiones, GitHub con algunas funciones colaborativas como pull request y revisiones de código, Jira para la gestión de peticiones, MediaWiki para documentar cierta información o Jenkins para la ejecución de las pruebas automatizadas. Instalar estas herramientas individualmente requiere tiempo y dedicación, además de mantenimiento posterior.

GitLab es una herramienta que proporciona estas funcionalidades en un único producto y por tanto más fácil de instalar y administrar. Quizá su gestor de peticiones y wiki no tenga tantas opciones como sus respectivos productos específicos pero para la mayoría de casos son más que suficientes. Y tiene un desarrollo muy activo añadiendo características cada pocas semanas.

Hay varias formas de instalar GitLab, una de ellas es instalandolo como un paquete de software en la propia máquina, usando una imagen de Docker o con una imagen de Bitnami. Siguiendo el artículo de Introducción a Bitnami puedes conocer como instalar GitLab en una máquina virtual con VirtualBox y con la serie de artículos sobre Docker como instalarlo en forma de contenedor y en la web de GitLab se explica como instalarlo como un software más de un sistema.

Usando Docker y el siguiente archivo de Docker Compose basta el comando docker-compose up para iniciar GitLab. Instalado GitLab de alguna de las formas anteriores usando un navegador web y con la dirección https://gitlab (configurados los certificados SSL y la ubicación de los volúmenes) se accede a la aplicación de GitLab, donde inicialmente se pide la contraseña del usuario administrador root con la que iniciar sesión y realizar las tareas administrativas como crear otros usuarios y proyectos.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
version: '3.4'

services:
  gitlab:
    image: 'gitlab/gitlab-ce:latest'
    container_name: gitlab
    hostname: 'localhost'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://gitlab'
        nginx['ssl_certificate'] = '/etc/gitlab/ssl/gitlab.crt'
        nginx['ssl_certificate_key'] = '/etc/gitlab/ssl/gitlab.key'        
    ports:
      - '8022:22'
      - '8080:80'
      - '8443:443'
    volumes:
      - 'gitlab-config-volume:/etc/gitlab'
      - 'gitlab-log-volume:/var/log/gitlab'
      - 'gitlab-data-volume:/var/opt/gitlab'
      - './docker-volumes/gitlab/ssl:/etc/gitlab/ssl'

volumes:
  gitlab-config-volume:
  gitlab-log-volume:
  gitlab-data-volume:
docker-compose.yml

Contraseña de root Inicio de sesión

Contraseña e inicio de sesión

Página de bienvenida

Página de bienvenida

Perfil de usuario Área de administración

Perfil de usuario y área de administración

Iniciada sesión ya se puede empezar a usar GitLab a crear usuarios con sus claves SSH, repositorios de Git pudiendo importar otros existentes, crear nuevos, páginas de una wiki y peticiones, integración y entrega continua y personalizar el panel kanban con el flujo que deseamos que sigan las peticiones en la organización, por ejemplo, planning, ready, doing, review, merged y deployed.

Nuevo proyecto

Nuevo proyecto

Nueva petición Panel de peticiones

Nueva petición y panel de peticiones

Nueva página wiki Página wiki

Página wiki

Creado un proyecto GitLab e introducida la clave pública SSH nos proporciona la dirección URL con la que se puede clonar, convertir una carpeta existente en un repositorio o añadir un repositorio existente. Una vez con el repositorio en el sistema de archivos local se puede empezar a subir, modificar y eliminar archivos del repositorio de control de versiones. Hecho algún commit y subido algún archivo desde GitLab se puede ver el contenido del repositorio de Git.

1
2
3
4
5
6
$ git clone ssh://git@gitlab:8022/root/test.git
$ cd test
$ touch README.md
$ git add README.md
$ git commit -m "add README"
$ git push -u origin master
clone-repository.sh
1
2
3
4
5
6
$ cd test
$ git init
$ git remote add origin ssh://git@gitlab:8022/root/test.git
$ git add .
$ git commit -m "Initial commit"
$ git push -u origin master
existing-folder.sh
1
2
3
4
5
cd test
git remote rename origin old-origin
git remote add origin ssh://git@gitlab:8022/root/test.git
git push -u origin --all
git push -u origin --tags
existing-repository.sh

Detalles de proyecto Detalles de proyecto

Detalles de proyecto

Contenido de archivo código fuente

Contenido de archivo de código fuente

Otras formas de usar GitLab es desde la nube de Amazon EC2 o de forma SaaS a un coste de entre 39 € y 199 € por usuario y mes pero si la nube no es una opción una de las ventajas de GitLab es que se puede instalar en algún sistema propio de cualquiera de las formas anteriores y tener proyecto privados. GitLab es otra herramienta que a añadiría a Herramientas para un proyecto Java. Hay alguna cosa adicional a conocer como realizar una actualización cuando se publique una nueva versión o como hacer copias de seguridad y restaurarlas. Lo que he mostrado aquí son solo una introducción a unas pocas de las muchas posibilidades de GitLab.

Terminal

El código fuente completo del ejemplo puedes descargarlo del repositorio de ejemplos de Blog Bitix alojado en GitHub y probarlo en tu equipo ejecutando siguiente comando:
docker-compose up


Comparte el artículo: