Fazendo integração contínua dos testes automatizados com Gitlab CI.

Bruno Batista
automação com batista
4 min readJan 19, 2019

1 — O que é Gitlab.

O GitLab é um gerenciador de repositório de software baseado em git, com suporte a Wiki, gerenciamento de tarefas e CI/CD. GitLab é similar ao GitHub, mas o GitLab permite que os desenvolvedores armazenem o código em seus próprios servidores, ao invés de servidores de terceiros. Ele é software livre, distribuído pela Licença MIT.

2 — O que é Gitilab-Ci?

Gitlab-Ci é o ambiente de Integração Contínua do GitLab que da suporte a continuous integration, continous deployment e continous delivery.

3 — Pré requisitos.

Precisamos de um projeto já pronto e configurado pra rodar em headless.

Vou utilizar um projeto meu feito com ruby, capybara e cucumber.

Caso queira baixar esse projeto meu projeto no github:

Hummm ele tem um projeto configurado…

4 — Crie uma conta no gitlab e crie seu repositório.

Depois de criar a conta e um repositório, agora de o clone o seu repositório e adicione o meu projeto dentro da pasta do seu projeto que foi criado no Gitlab.

git clone url_do_seu_projeto
cd nome_da_pasta_do_seu_projeto
#depois adicione o meu projeto nessa pasta.

Onde a estrutura ficara assim:

Feito isso você já tem um projeto pronto para jogar no Gitlab mas, antes disso precisamos configurar o o arquivo:

gitlab-ci.yml

5 — O que é o arquivo .gitlab-ci.yml

É o arquivo que é usado pelo GitLab Runner para gerenciar o projeto jobs.is do seu projeto.

6— Configurando o .gitlab-ci.yml

O arquivo .gitlab-ci.yml tem que ser criado na pasta raiz do projeto como no exemplo abaixo.

7 — Agora dentro do arquivo .gitlab-ci.yml vamos adicionar os seguintes comandos:

Fique calmo que explicarei cada comando :)

O gitlab-ci ele trabalha com o docker então no primeiro comando.

Image — Isso permite especificar uma imagem do Docker personalizada e uma lista de serviços que podem ser usados.

Eu rodo esse comando para baixar uma imagem especifica do docker hub que é a nbulai/ruby-chromedriver:latest, ela é uma imagem de uma máquina linux já configurada com ruby e suas dependências, chrome e chromedriver na versão mais atualizada.

Stages — é usado para definir estágios que podem ser usados ​​por jobs e é definido globalmente.

Eu rodo esse comando para definir um estágio chamado tests.

Run_script — É apenas o nome que eu escolhi para o script, pode ser qualquer nome.

Script — É a única palavra-chave necessária que um job precisa. É um script de shell que é executado pelo Runner.

É nele que rodo o comando do cucumber para executar o projeto.

Artifacts — É usado para especificar uma lista de arquivos e diretórios que devem ser anexados ao trabalho após o sucesso.

Paths — É o caminho onde onde eu especifico o caminho do arquivo.

É onde eu digo onde vai ficar gravado os resultados da automação.

Depois disso tudo, basta dar commit e dar push no repositório;

git add .
git commit -m "adicionando arquivo gitlab-ci.yml"
git push

Depois basta acessar seu repositório para você ver o CI funfionando. Veja as fotos abaixo:

O job vai fazer a instalação de tudo e depois ira executar o projeto.
Aqui já é o job finalizado.

Assim você rodou seus testes automatizados em um ambiente de integraçaão contínua usando gitlab-ci, simples e fácil de se usar.

Neste exemplo eu usei ruby mas você pode faze com qualquer linguagem que você preferir, só precisa fazer as configuraçōes da máquina corretamente.

Referências:

--

--