GitLab + GitLab CI

k5vCD0BD

À alguns meses atrás tive a necessidade de instalar um repositório git.

Usar um bitbucket ou github não era uma opção pois a intenção era ser um repositório privado para alojar vários projectos.

Depois de algumas pesquisas encontrei o GitLab.

O GitLab é uma solução semelhante ao GitHub que podemos instalar no nosso próprio servidor, muito simples de configurar e utilizar. Como bonus as ultimas versões têm um componente chamado GitLab CI para podermos montar um sistema de integração continua.

O GitLab tem varias funcionalidades entre as quais:
– Sistema para reportar issues
– WebHooks para automatização de tarefas
– Gestão de versões e milestones
– Criação de grupos de trabalho por projecto
– Autenticação LDAP
– Broadcast de mensagens para os utilizadores
– Possibilidade de integração com multiplos serviços tais como: RedMine, Asana, JIRA, ….

gitlab services

 

O sistema de merge requests é muito intuitivo e util para trabalho colaborativo pois permite discussão acerca das alterações feitas, tem um sistema de diffs integrado.

gitlab merge request

 

Podemos ver a actividade de cada utilizador através de gráficos e assim poder controlar a produtividade de cada um,, criar um wiki para o projecto, ver a arvore dos branches, etc….

Em suma é uma ferramenta git completa que funciona muito bem!

Já na parte da integração continua o sistema também é muito bom visto ser compatível com Docker (para quem usa, eu ainda não me aventurei por essas aguas) e permite-nos por exemplo quando fazemos um merge para o branch de produção, correr test units e se tudo correr bem com os testes, fazer um package e colocar disponível para download.

Tambem podemos configurar uma ferramenta para fazer o code coverage e o gitlab mostra-nos qual a percentagem de codigo coberto pelos testesgitlab ci

A configuração é feita atraves de um ficheiro .yaml à semelhança do Travis (um serviço de integração continua muito utilizado com o github).

 

Deixar uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *