Bem-vindo(a) à nossa série "Primeiros passos com o GitLab", em que ajudamos quem está iniciando agora a se familiarizar com a plataforma DevSecOps do GitLab.
Imagine um fluxo de trabalho em que cada alteração de código é automaticamente compilada, testada e publicada para os seus usuários. É esse o poder da Integração Contínua/Entrega Contínua (CI/CD)! O CI/CD ajuda você a identificar bugs mais cedo, garante a qualidade do código e entrega software mais rápido e com mais frequência.
O GitLab CI/CD é um sistema poderoso e integrado que já vem incluído na plataforma do GitLab. Ele oferece uma experiência integrada para automatizar todo o seu ciclo de vida de desenvolvimento de software (SDLC). Com o GitLab CI/CD, você pode:
.gitlab-ci.yml: este arquivo YAML, localizado no diretório raiz do seu projeto, define o pipeline de CI/CD, incluindo as etapas, jobs e runners.Começar com o GitLab CI é simples. Veja um exemplo básico de um arquivo .gitlab-ci.yml:
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Building the application..."
test_job:
stage: test
script:
- echo "Running tests..."
deploy_job:
stage: deploy
script:
- echo "Deploying to production..."
environment:
name: production
Essa configuração define três etapas: "build", "test" e "deploy". Cada etapa contém um job que executa um script simples.
Vamos explorar alguns exemplos mais realistas.
Compilando e implantando uma aplicação Node.js
A definição de pipeline abaixo mostra o uso do npm para compilar e testar uma aplicação Node.js e do dpl para implantar a aplicação no Heroku. A etapa de deploy do pipeline utiliza as variáveis de CI/CD do GitLab, que permitem que os desenvolvedores armazenem informações sensíveis (como credenciais) e as utilizem com segurança nos processos de CI/CD. Neste exemplo, uma chave de API para publicar no Heroku é armazenada na variável $HEROKU_API_KEY, usada pela ferramenta dpl.
stages:
- build
- test
- deploy
build:
stage: build
image: node:latest
script:
- npm install
- npm run build
test:
stage: test
image: node:latest
script:
- npm run test
deploy:
stage: deploy
image: ruby:latest
script:
- gem install dpl
- dpl --provider=heroku --app=$HEROKU_APP_NAME --api-key=$HEROKU_API_KEY
Publicando em diferentes ambientes (staging e produção)
O GitLab também oferece o conceito de Ambientes (Environments) no CI/CD. Esse recurso permite que os usuários acompanhem as implantações do CI/CD até os seus destinos na infraestrutura. No exemplo abaixo, o pipeline adiciona etapas com uma propriedade de ambiente para staging e produção. Enquanto a etapa deploy_staging sempre executa seu script, a etapa deploy_production exige aprovação manual para evitar publicações acidentais em produção.
stages:
- build
- test
- deploy_staging
- deploy_production
build:
# ...
test:
# ...
deploy_staging:
stage: deploy_staging
script:
- echo "Deploying to staging..."
environment:
name: staging
deploy_production:
stage: deploy_production
script:
- echo "Deploying to production..."
environment:
name: production
when: manual # Requires manual approval
O GitLab Auto DevOps simplifica o CI/CD ao oferecer uma configuração pré-definida que compila, testa e publica suas aplicações automaticamente. Para isso, ele utiliza as boas práticas e padrões do setor para otimizar o seu fluxo de trabalho.
Para ativar o Auto DevOps:
O Auto DevOps detecta automaticamente a linguagem e o framework do seu projeto e configura as etapas necessárias de build, test e deploy. Ou seja, você nem precisa criar um arquivo .gitlab-ci.yml.
O Catálogo de CI/CD é uma lista de projetos com componentes de CI/CD publicados para que você possa estender o seu fluxo de trabalho de CI/CD. Assim, qualquer pessoa pode criar um projeto de componente e adicioná-lo ao Catálogo de CI/CD, ou mesmo contribuir para um projeto existente para melhorar os componentes disponíveis. Você pode encontrar os componentes publicados no Catálogo de CI/CD no GitLab.com.
Tutorial: Saiba como configurar seu primeiro componente de CI/CD do GitLab
Você também pode criar seus próprios templates de CI para padronizar e reutilizar configurações de CI/CD em vários projetos, o que promove a consistência e reduz a duplicação.
Para criar um template de CI:
.gitlab-ci.yml em um projeto ou repositório dedicado..gitlab-ci.yml do seu projeto, use a palavra-chave include para incluir o template.O GitLab CI/CD é uma ferramenta poderosa que pode transformar o seu fluxo de trabalho de desenvolvimento. Ao entender os conceitos de CI/CD, configurar seus pipelines e aproveitar recursos como o Auto DevOps, o Catálogo de CI/CD e os templates de CI, você pode automatizar todo o seu ciclo de vida de desenvolvimento de software e entregar software de alta qualidade mais rápido e com mais eficiência.
Quer saber mais sobre este e outros assuntos, e aprofundar o seu aprendizado? Inscreva-se nos cursos da GitLab University ou comece agora mesmo com um teste gratuito do GitLab Ultimate.
Confira mais artigos da nossa série "Primeiros passos com o GitLab":
Comece sua avaliação gratuita de
30 dias do GitLab
Não é necessário cartão de crédito.
Gostou deste artigo, ficou com alguma dúvida ou quer deixar um feedback? Compartilhe suas ideias criando um novo tópico no fórum da comunidade GitLab.
Compartilhe seu feedbackComece a desenvolver mais rápido hoje
Veja o que sua equipe pode fazer com a plataforma de orquestração inteligente para DevSecOps.