Pular para conteúdo

Como rodar

Status: Aprovado · Responsável: Gustavo Madruga · Atualizado em: 2026-09-15

Audiência: dev que clonou o repo e quer subir o app, rodar o gate e gerar as imagens na própria máquina. Como o código se organiza está no Guia do código; as variáveis de ambiente, em Configuração; o que muda entre dev, test e produção, em Perfis Micronaut.

Pré-requisitos

  • JDK 25 no JAVA_HOME: é a versão do toolchain.java do docs/app.json, a mesma do CI.
  • Docker rodando: o run sobe o Postgres de dev, e os testes sobem o Postgres de teste via Testcontainers.
  • Build sempre pelo wrapper (./gradlew; no Windows, .\gradlew.bat).

Subir o app

./gradlew run

O run ativa o perfil dev, a menos que MICRONAUT_ENVIRONMENTS já venha no ambiente, e depende da task subirInfraDev, que sobe o Postgres 18 do docker-compose.dev.yml na porta 5432 e espera o banco ficar saudável. O app responde em http://localhost:8080.

No perfil dev o Flyway recria o schema a cada boot, o Bearer de /api/** fica desligado, as telas abrem sem login quando as envs de autenticação não estão definidas e o Sentry não inicializa sem SENTRY_DSN.

Quem já tem um Postgres próprio exporta DATASOURCES_DEFAULT_URL (e DATASOURCES_DEFAULT_USERNAME/ DATASOURCES_DEFAULT_PASSWORD): a subida do Docker é pulada. Para parar o banco de dev: docker compose -f docker-compose.dev.yml down.

Gate

./gradlew check                                   # o mesmo comando do job gate do pipeline.yml
./gradlew coverage                                # testes e o percentual do JaCoCo no terminal
./gradlew test --tests "*XadmTableRegistryTest"   # um teste só

O check compila, roda a análise estática, a suíte inteira (unit, integração com @MicronautTest e o ArchitectureTest) e o piso de cobertura do JaCoCo. Os testes de integração rodam contra o Postgres de teste descrito em Perfis Micronaut: basta o Docker no ar.

Jar e imagens

./gradlew shadowJar                                                    # build/libs/app.jar
docker build -t integrador-server:local .                              # imagem JVM
docker build -f Dockerfile.native -t integrador-server:native-local .  # imagem native

O alvo de deploy é o do build.targets do docs/app.json. O caminho native (reachability metadata e diagnóstico de boot) está em Native image; a implantação, em Implantação — integrador no Coolify.

SQL de diagnóstico

scripts/sql/ guarda consultas de leitura para rodar à mão contra o banco de uma instância: saldo_bl_por_lote.sql (saldo atual de cada BL) e diagnostico_bl_inconsistente.sql (BL com venda e liberação dessincronizadas). Cada arquivo explica no cabeçalho o que devolve.

Site de docs

python -m mkdocs serve

Precisa do MkDocs Material e dos plugins listados no mkdocs.yml. O mkdocs build --strict reprova página fora do nav: e link quebrado.