Sistema para processamento de transações financeiras
- Pŕe requisitos
- Variáveis de ambiente
- Ambiente de desenvolvimento
- Testes automatizados
- Build de produção
- Implantação
- Documentação relacionada
O ambiente de desenvolvimento deste projeto usa containers para fornecer a infraestrutura necessária para a execução da aplicação. Por conta disso, é necessário que as ferramentas a seguir sejam instaladas:
dockerdocker-composebuildx(docker buildx install)
Dica! Caso use o editor Visual Studio Code, veja neste guia como executar o editor dentro do container da aplicação.
Algumas configurações do projeto são definidas com do uso de variáveis de ambiente, através de arquivos .env. Veja como definilas neste guia.
Sigas as instruções abaixo para executar o servidor de desenvolvimento:
# Crie a imagem que executará o projeto
$ docker-compose build
# Execute o servidor de desenvolvimento
$ docker-compose upAtenção! Caso tenha seguido o guia de configuração do editor Visual Studio Code, não é necessário executar o comando docker-compose up. Ele é executado automaticamente ao abrir o projeto no editor.
Para executar testes automatizados e executar as ferramentas de análise estática de código, use os comandos abaixo:
# Testes automatizados
$ docker-compose exec api mix test
# Análise estática de código
$ docker-compose exec api mix credo
$ docker-compose exec api mix dialyzer
# ~~~~~~~~~~~~~~> OU <~~~~~~~~~~~~~~~~
# Crie um alias para o comando mix
$ alias mix="docker-compose exec api mix"
# Testes automatizados
$ mix test
# Análise estática de código
$ mix credo
$ mix dialyzerAtenção! Para executar os comandos acima, é necessário que o container do projeto esteja em execução. Para verificar se o container está em execução, use o comando docker-compose ps. Um serviço com o nome api deve aparecer com o status Up.
Dica! Para não ter que criar um alias toda vez que abrir o projeto, você pode cria-lo no arquivo de configuração do seu shell (~/.bashrc, ~/.zshrc, etc).
Execute os comandos abaixo para gerar um novo release e executar o ambiente de produção localmente:
# Crie a imagem que executará conterá os binários de produção
$ docker-compose -f docker-compose.yml build
# Execute a aplicação
$ docker-compose -f docker-compose.yml upA implantação no ambiente de produção é feita de forma automatizada utilizando workflows do Github Actions. Para que a uma plantação seja feita, os seguintes critérios devem ser atendidos:
- Deve ser feito o push de um branch ou tag em um formato especifico.
- Branches devem seguir o formato
release/v*.*.*. Por exemplo:release/v1.0.0. - Tags devem seguir o formato
v*.*.*. Por exemplo:v1.0.0. - Os testes automatizados definidos no workflow Continous Integration devem ser executados sem falhas.
- Atendidos os requisitos acima, a implantação ocorrerá no workflow Continous Delivery. Caso não ocorra nenhuma falha durante o processo, uma nova versão contendo as mudanças do commit atual será implantada no ambiente configurado.