---
# System prepended metadata

title: Avançando em CI/CD no GitLab
tags: [iac, programming, devops, gitlab]

---

# Avançando em CI/CD no GitLab

[![hackmd-github-sync-badge](https://hackmd.io/xyzTSSe9RyqB1RDnM28AbQ/badge)](https://hackmd.io/xyzTSSe9RyqB1RDnM28AbQ)


###### tags: `gitlab` `iac` `devops` `programming`

## Como o GitLab CI/CD funciona

Para usar GitLab CI/CD, tudo o que você precisa é uma base de código de aplicativo hospedada em um repositório Git e que seus scripts de construção, teste e implantação sejam especificados em um arquivo chamado .gitlab-ci.yml, localizado no caminho raiz de seu repositório.

![GitLab para CI/CD](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fqvl5hzkon0zkfd2rob0.png)

## GitLab CI/CD: principais ingredientes

Para usar o GitLab CI/CD, você ou o administrador do GitLab deve primeiro definir um pipeline em um arquivo YAML chamado .gitlab-ci.yml e, em seguida, instalar e configurar um Gitlab Runner.

- .gitlab-ci.yml
    
    O arquivo YAML é o arquivo de definição de pipeline. Ele especificou os estágios, trabalhos e ações que você deseja executar. Pense no arquivo YAML como o cérebro e o corredor como o corpo.
    
- GitLab Runner
    
    Um GitLab Runner, um arquivo escrito em Go, executará as tarefas especificadas no arquivo YAML usando uma API para se comunicar com o GitLab.
    
    O administrador do GitLab pode configurar runners compartilhados para execução em vários projetos, e você pode configurar o seu próprio por projeto.
    

## Exemplo de arquivo .gitlab-ci.yml

Aqui está um exemplo muito básico de um arquivo .gitlab-ci.yml, que é escrito na sintaxe YAML e armazenado na raiz de um projeto e versão controlada junto com o resto do seu código.

Na imagem à esquerda, você pode ver onde as etapas estão sendo definidas e como cada etapa é implementada.


![Exemplo GitLab](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bmz49mw7flyzxs132x9i.png)

## Anatomia de um pipeline de CI/CD

Este é um exemplo de gráfico de pipeline que mostra a aparência do build CI/CD. Ele permite que você veja como um conjunto de um ou mais jobs são executados nos estágios que você define no arquivo YAML para o pipeline.

![anatomia ci/cd](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5tso2bndrge5xcjwa6y8.png)


