Ir para o conteúdo

Deploy - Schedula - Back

1. Histórico de versão

Versão Data Descrição Autor
1.0 27/01/2023 Criação do documento Mateus Gomes e Vinícius Saturnino

2. Introdução

Neste guia, iremos fornecer uma passo a passo para instalação e deploy dos serviços Back-end do projeto Schedula.


3. Pré-requisitos

  • Docker
  • Docker-compose
  • Git

4. Repositórios no GitHub

  • Repositório de usuário: https://github.com/fga-eps-mds/2022-2-schedula-gestor-de-usuarios

  • Repositório de localidades: https://github.com/fga-eps-mds/2022-2-schedula-gerenciador-de-localidades

  • Repositório de chamados: https://github.com/fga-eps-mds/2022-2-schedula-detalhador-de-chamados


5. Passo a passo

O primeiro passo é clonar os repositórios.

$ git clone <repo-link>

Depois, deve-se preencher o arquivo .env como está exemplificado no arquivo .env.example.

E por último, deve-se subir o ambiente docker local.

$ docker compose up --build

6. Deploy

6.1 Variáveis de ambiente no GitHub

Para utilizar o pipeline de CD integrado com a plataforma Heroku, deve-se configurar algumas variáveis de ambiente nos repositórios GitHub. Na aba settings do repositório clonado, em Security > Secrets and variables > Actions, deve-se adicionar as seguintes variáveis.

  • HEROKU_EMAIL: email da conta do heroku dona do app de hospedagem para o serviço
  • HEROKU_API_KEY: api key da conta heroku no qual o serviço será hospedado
  • HEROKU_APP_NAME: nome do app criado no heroku para hospedar o serviço

6.2 Variáveis de ambiente de deploy

O serviço de hospedagem deve ter as mesmas variáveis de ambiente especificadas na seção de utilização do ambiente, mas neste caso, com os valores de produção. Estas variáveis são:

  • DATABASE_DB: nome do banco de dados
  • DATABASE_HOST: host do banco de dados
  • DATABASE_PASS: senha do banco de dados
  • DATABASE_PORT: porta do banco de dados
  • DATABASE_USER: usuário do banco de dados
  • ENVIRONMENT: ambiente da execução, o código apenas verifica se esta variável é PRODUCTION, caso seja qualquer outro valor, ele trata como código local de desenvolvimento
  • NPM_CONFIG_PRODUCTION: esta é uma variável específica do heroku, que foi necessário dar o valor de false para o heroku conseguir ler a configuração do npm e conseguir rodar o código em nest

7 Pipelines de CI/CD

Na pasta .github na raíz do projeto dentro de workflows, estão configurados alguns pipelines orquestrados para desenvolvimento e deploy do repositório.

7.1 Workflow de CI

O workflow de CI serve para garantir a cobertura de testes.

7.2 Workflow de CD

O workflow de CD serve para fazer o deploy na plataforma do Heroku utilizando as variáveis de produção configuradas anteriormente. Esse pipeline depende do pipeline de CI.