Skip to content

Oswaldo-Ferraz/msg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CI/CD com GitHub Actions

Este documento descreve o pipeline de CI/CD configurado para o projeto Sistema de Gerenciamento de Mensagens Unificado.

Pipelines

Build e Teste (build.yml)

O pipeline de build é acionado em:

  • Pushes para as branches main e develop
  • Pull requests para as branches main e develop

Este pipeline executa:

  1. Setup do ambiente: Configuração de Go, PostgreSQL, MongoDB e Redis
  2. Instalação de dependências: Download das dependências Go
  3. Verificação de formatação do código: Garante que o código siga o padrão de formatação Go
  4. Build: Compila o código para verificar erros de compilação
  5. Testes: Executa os testes automatizados

Deploy (deploy.yml)

O pipeline de deploy é acionado em:

  • Pushes para a branch main
  • Tags que começam com v (para releases)

Este pipeline executa:

  1. Build e Push da imagem Docker: Constrói a imagem Docker do backend e a envia para o GitHub Container Registry
  2. Deploy para Staging: Para pushes na branch main, faz deploy automático no ambiente de staging

Ambientes

  • Staging: Ambiente de homologação, deploy automático
  • Produção: O deploy deve ser feito manualmente usando tags

Secrets Necessários

Para que o pipeline funcione corretamente, os seguintes secrets devem ser configurados nas configurações do repositório GitHub:

  • STAGING_SERVER_HOST: Endereço IP ou nome do host do servidor de staging
  • STAGING_SERVER_USER: Usuário SSH para acesso ao servidor de staging
  • STAGING_SSH_PRIVATE_KEY: Chave SSH privada para acesso ao servidor de staging

Variáveis de Ambiente

As seguintes variáveis de ambiente devem ser configuradas no servidor:

  • POSTGRES_PASSWORD: Senha do banco de dados PostgreSQL
  • JWT_SECRET_KEY: Chave secreta para assinatura de tokens JWT

Como usar

Para iniciar uma build

  • Faça push para main ou develop
  • Abra um Pull Request para main ou develop

Para fazer deploy em staging

  • Faça merge na branch main

Para fazer deploy em produção

  • Crie e faça push de uma tag seguindo Semantic Versioning, ex: v1.0.0

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors