Gitlab - Repositorios GIT e integración continua

Servidor de GitLab, una herramienta que permite gestionar repositorios GIT de forma sencilla, muy similar a GitHub.

Tiene activado GitLab CI con un runner de uso general de tipo Docker (y la posibilidad de añadir más runners) y Gitlab Pages.

Todos los usuarios del CITIUS pueden acceder a este servicio de forma automática.

Acceso a GitLab y primeros pasos

Se puede acceder en https://gitlab.citius.usc.es/. Debes usar tus credenciales del CiTIUS, en la pestaña llamada LDAP. Una vez dentro, se pueden crear nuevos proyectos de forma sencilla. Una vez creado un proyecto, se muestran por pantalla los pasos necesarios para inicializar el repositorio.

Recuerda que si eliges acceder mediante SSH (la opción por defecto), solo podrás hacerlo desde la red interna del CiTIUS o conectandote a la VPN, y que tendrás que añadir una clave pública en las preferencias. Añadir una clave pública es muy sencillo y el propio Gitlab te explica cómo hacerlo. Es la opción recomendada si vas a trabajar desde la red del centro.

El acceso mediante HTTPS, por el otro lado, funciona con usuario y contraseña y también es accesible desde el exterior.

Pulsando en el desplegable, puedes ver la dirección para acceder mediante HTTPS al repositorio

GitLab CI

Desde la versión 8.0, Gitlab CI está integrado en Gitlab. Para comenzar a usarlo, basta con crear un archivo llamado .gitlab-ci.yml siguiendo la guía de Gitlab CI.

Gitlab Pages

Las páginas de Gitlab Pages se sirven en un subdominio de pages.citius.es (con un alias en citius.io), y se crean a partir de un trabajo de Gitlab CI. Tienes una guía básica sobre el uso de Gitlab Pages en https://pages.citius.usc.es/ y más información en la página de alojamiento con Gitlab Pages.

Creación de proyectos en grupos

Los proyectos de GitLab pueden crearse dentro de un usuario o dentro de un grupo. Si el proyecto va a ser en colaboración con otras personas, o es susceptible de ser traspasado a otra persona una vez termines el trabajo en él, entonces es preferible que crees el proyecto dentro de un grupo. Para hacerlo pulsa en el botón Create a group dentro de la página de Groups.

Archivos grandes (git lfs)

Los archivos mayores de 100MB no deben subirse al repositorio git de la forma habitual, sino usando git-lfs. El procedimiento es el seguiente:

  1. Instalar el cliente de git-lfs, disponible en el paquete git-lfs en la Ubuntu 14.04 del centro o aquí para otras distribuciones.
  2. En el directorio del repositorio, iniciar LFS: git lfs install
  3. Indicar los archivos que serán manejados con LFS (pueden usarse comodínes): git lfs add "*.ova"
  4. Añadir los archivos a commits, de la forma habitual: git add file.ova; git commit -m “Added big file”
  5. LFS solo funciona a través de HTTPS, non de SSH. Si estás utilizando el remote por SSH, tienes que añadir también el de HTTPS con otro nombre antes de hacer push, por ejemplo: git remote add origin-https https://gitlab.citius.usc.es/grupo/proyecto.git
  6. Por último, haz un push al remote HTTPS: git push origin-https master

Para clonar el repositorio también hay que hacer pasos adicionales:

  1. Hacer el clone de la manera habitual por HTTPS: git clone https://gitlab.citius.usc.es/grupo/proyecto.git
  2. Cambiar el directorio del repositorio y obtener los archivos del LFS: git lfs fetch

Al hacer un push, recibo el siguiente error: "error: RPC failed; result=22, HTTP code = 411"

Si recibes el HTTP code = 411, necesitas configurar el comando Git para aumentar el tamaño del buffer HTTP

git config --global http.postBuffer 524288000 # permite ata 500MB

Si recibes el HTTP code = 413, es porque el push es demasiado grande. El servidor acepta push de hasta 70MB por HTTP y cualquier push mayor dará ese error. Si necesitas hacer push mayores tienes que usar SSH con un par de llaves en lugar de por HTTP.

Al clonar el repositorio, recibo el siguiente error: "Agent admitted failure to sign using the key."

Si tienes la clave SSH correctamente configurada en el servidor, acabas de crearla y nunca la habías probado debes ejecutar el siguiente comando para añadirla al agente de autenticación local:

ssh-add
  • es/centro/servizos/gitlab.txt
  • Última modificación: 2018/05/28 14:00
  • por fernando.guillen