DEV Community

Monica Hillman for Magalu Cloud

Posted on

CI/CD na Magalu Cloud com GitHub Actions

Um dos problemas mais comuns em times de desenvolvimento não está no código em si, mas na forma como ele chega até produção.

Mesmo equipes organizadas enfrentam situações como:

  • diferenças entre ambientes (desenvolvimento, homologação, produção)
  • erros manuais durante o processo de publicação
  • dificuldade em rastrear qual versão está em execução
  • retrabalho após falhas em deploy

Esses problemas tendem a crescer à medida que o sistema evolui e o número de entregas aumenta.

A prática de CI/CD (Integração Contínua e Entrega Contínua) surge exatamente para resolver esse cenário, automatizando o fluxo de validação e entrega de software.

Neste artigo, vamos construir um fluxo completo utilizando:

  • GitHub Actions para automação
  • Container Registry da Magalu Cloud para armazenamento de imagens
  • Infraestrutura da Magalu Cloud como destino da aplicação

O objetivo é sair de um processo manual e sujeito a falhas para um pipeline automatizado, reprodutível e integrado com a nuvem.


Hands-on: construindo um pipeline de CI/CD

Visão geral do fluxo

O pipeline que vamos montar segue esta sequência:

  1. Código é enviado para o repositório
  2. GitHub Actions executa o pipeline
  3. A aplicação é empacotada como imagem de container
  4. A imagem é enviada para o Container Registry da Magalu Cloud
  5. A imagem fica disponível para execução na infraestrutura

Pré-requisitos

Antes de começar, é necessário:

  • Conta na Magalu Cloud
  • Repositório no GitHub
  • Docker configurado no projeto

Obtendo informações da conta

Para integrações com a plataforma, você pode consultar o Tenant ID via CLI:

mgc auth tenant current
Enter fullscreen mode Exit fullscreen mode

O retorno inclui o identificador da conta (UUID), utilizado em integrações com APIs como x-tenant-id


Estrutura do projeto

Exemplo mínimo de aplicação com Docker:

FROM nginx:alpine
COPY . /usr/share/nginx/html
Enter fullscreen mode Exit fullscreen mode

Criando o pipeline no GitHub Actions

Crie o arquivo:

.github/workflows/ci-cd.yml
Enter fullscreen mode Exit fullscreen mode

Conteúdo:

name: CI/CD Magalu Cloud

on:
  push:
    branches:
      - main

jobs:
  build-and-push:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout do código
        uses: actions/checkout@v3

      - name: Build da imagem
        run: docker build -t minha-app:latest .

      - name: Login no Container Registry
        run: |
          docker login ${{ secrets.REGISTRY_URL }} \
          -u ${{ secrets.REGISTRY_USER }} \
          -p ${{ secrets.REGISTRY_PASSWORD }}

      - name: Tag da imagem
        run: |
          docker tag minha-app:latest \
          ${{ secrets.REGISTRY_URL }}/minha-app:latest

      - name: Push da imagem
        run: |
          docker push \
          ${{ secrets.REGISTRY_URL }}/minha-app:latest
Enter fullscreen mode Exit fullscreen mode

Configuração de credenciais

No GitHub, configure as seguintes variáveis seguras:

  • REGISTRY_URL
  • REGISTRY_USER
  • REGISTRY_PASSWORD

Essas informações devem ser obtidas no console da Magalu Cloud.


Resultado esperado

A cada alteração na branch main:

  • o pipeline será executado automaticamente
  • a imagem será construída
  • a imagem será enviada ao Container Registry
  • a versão ficará disponível para uso na infraestrutura

Conclusão

A implementação de CI/CD com GitHub Actions na Magalu Cloud resolve problemas reais do dia a dia de desenvolvimento, especialmente relacionados a consistência, automação e confiabilidade de entregas.

Com poucos componentes é possível construir um fluxo completo que:

  • automatiza build e publicação
  • padroniza a geração de artefatos
  • integra diretamente com a infraestrutura da nuvem

Além disso, a abordagem aberta da plataforma permite utilizar ferramentas amplamente adotadas, sem dependência de soluções proprietárias.

O resultado é um processo de entrega mais previsível, escalável e alinhado às práticas modernas de desenvolvimento.

Top comments (0)