CI/CD com Gitlab

CI/CD com Gitlab

O que é o Gitlab?

O Gitlab é uma ferramenta que agrega diversas funcionalidades, mas, primordialmente, é um gerenciador de repositório baseado em Git, assim como o Github. Hoje em dia, além da funcionalidade citada, ele também conecta diversas ferramentas do mundo DevOps, assim como conceitos de CI/CD e até mesmo Kubernetes.

Como usar o CI/CD do Gitlab?

Preferencialmente, devemos ter um arquivo no nosso repositório com o nome “.gitlab-ci.yml”. Esse é o nome padrão do arquivo que será utilizado nas pipelines do Gitlab, mas você pode configurar para ter outro nome.

  • Para que possamos denominar o arquivo de pipeline com outro nome, basta acessar as configurações do seu repositório

  • Selecione a opção CI/CD das configurações
  • Clique em expandir a opção Pipelines Gerais

 

  • Configure o caminho ou nome do seu arquivo yml da pipeline

    Após ter criado seu arquivo com extensão .yml, iremos configurar uma simples pipeline só para entender o processo que o Gitlab utiliza. 😀

Como criar o arquivo para a pipeline

Você pode utilizar seu editor de preferência, mas o Gitlab fornece uma IDE de desenvolvimento web ^^, basta acessar o arquivo que deseja editar e clicar em IDE Web

Agora podemos finalmente criar o código, conforme o exemplo abaixo:

build-job:
    stage: build
    script:
        - echo "Ola, $GITLAB_USER_LOGIN!"

test-job:
    stage: test
    script:
        - echo "Esse é um teste"


deploy-prod:
    stage: deploy
    script:
        - echo "Este deploy esta sendo feito na branch $CI_COMMIT_BRANCH"

Basicamente, este código indica os estágios de desenvolvimento que iremos utilizar. No Gitlab, podemos ter 4 nomes para os estágios, sendo eles:

  1. build
  2. test
  3. deploy
  4. .post

Em cada um dos 3 estágios principais, utilizamos um script, que nada mais é do que um shell rodando por trás. Claro que utilizamos exemplos simples para mostrar a funcionalidade.
Além disto, podemos ver variáveis que não foram declaradas neste arquivo, que são variáveis padrão do Gitlab encontradas na documentação: variaveis sendo as mostradas

  1. $GITLAB_USER_LOGIN = Nome do usuário que esta rodando o job
  2. $CI_COMMIT_BRANCH = Nome da branch que o job esta rodando

Com o código acima, ao clicarmos em Commit, o Gitlab irá automaticamente iniciar a tentativa de rodar este job.

 

Insira a mensagem de Commit e o deploy será iniciado automaticamente

 

Agora, ao retornar ao menu do projeto e clicar em CI/CD pipelines, você será guiado até o histórico das pipelines, onde a pipeline inicial terá seu status de sucesso ou falha

 

Ao acessar os jobs, é possível ver quais passos falharam ou passaram

 

 

Ao clicar em algum dos passos, podemos ver os logs da execução

E com isto finalizamos a utilização da pipeline no Gitlab. 🙂

Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:

CURSOSCONSULTORIA

Anterior Integrando Telegram ao Rocket.Chat
Próxima Rocket.Chat App: Criando seu primeiro aplicativo

About author

Gabriel Nascimento
Gabriel Nascimento 3 posts

Gabriel Nascimento, Formado como Tecnologo em Análise e Desenvolvimento de Sistemas pela UNASP e Técnico em Redes de computadores pela ETEC de Embu , atua como Analista de infraestrutura Linux com ênfase em automação de tarefas bem com as tecnologias Jenkins, Shell Script, Puppet, Chef e Ansible

View all posts by this author →

Você pode gostar também

Infraestrutura TI

Terraform #parte2 – Alterando sua infraestrutura de forma incremental

Vimos no post anterior uma introdução ao Terraform e como criar de forma prática e simples uma máquina virtual na cloud da Google – GCP, porém não vimos como realizar

DevOps

4Linux lança seu mais novo curso: “ Infraestrutura ágil com práticas DEVOPS usando Docker, Git, Jenkins, Puppet e Ansible”

Aprenda a “versionar” a sua infraestrutura de TI como se ela fosse um software. A 4Linux está anunciando hoje o lançamento do seu mais novo curso: “ Infraestrutura ágil com

DevOps

Terraform — Gerenciando DNS com TSIG

Terraform é uma ferramenta da Hashicorp focada em Bootstrapping e inicialização de recursos. Em comparação com Puppet , este é responsável por gerenciar a configuração de uma infraestrutura existente, já o