Skip to content

CI/CD, governança e documentação final #46

Description

@YannLeao

Objetivo da PR

Fechar a modernização com gates obrigatórios em PR e entrega automatizada de APK em GitHub Release.

Tarefas detalhadas

  • Criar workflow de CI para pull_request com:
    • checkout e validação do Gradle Wrapper;
    • JDK 21 e cache Gradle seguro;
    • ktlint/format check e detekt;
    • Android lint;
    • testes unitários e gate Kover;
    • assembleDebug;
    • testes instrumentados em emulator runner, em job separado;
    • upload de relatórios mesmo em falha.
  • Aplicar concurrency para cancelar execuções antigas da mesma branch, timeouts e permissões mínimas.
  • Fixar actions por SHA ou política equivalente e habilitar atualização automatizada revisada.
  • Criar workflow de release acionado por tag validada (por exemplo vX.Y.Z) ou publicação de Release:
    • validar correspondência entre tag e versão;
    • receber MEDTRACK_API_BASE_URL e MEDTRACK_SCAN_URL via GitHub Environment variables/secrets;
    • materializar keystore temporariamente a partir de secret base64;
    • fornecer alias e senhas por secrets mascarados;
    • executar quality gates e assembleRelease;
    • localizar e renomear deterministicamente o APK;
    • gerar checksum SHA-256 e, se adotado, SBOM;
    • anexar APK e checksum diretamente aos assets do GitHub Release;
    • nunca publicar local.properties, keystore ou outputs intermediários sensíveis;
    • limpar credenciais temporárias ao final.
  • Usar GitHub Environment production com aprovação manual e secrets próprios. Endpoints não devem
    ser reutilizados de ambientes de PR.
  • Opcionalmente gerar AAB em paralelo para futura Play Store, sem substituir o requisito de anexar APK.
  • Criar template de PR com escopo, evidências, riscos, screenshots, testes e checklist de privacidade.
  • Criar templates de bug/feature/security e CODEOWNERS.
  • Configurar proteção da main: PR obrigatório, aprovações, conversas resolvidas, branch atualizada,
    status checks obrigatórios, bloqueio de force push/delete e revisão de CODEOWNERS.
  • Habilitar Dependabot/Renovate com PRs agrupados por ecossistema e execução de toda a CI.
  • Atualizar README.md com pré-requisitos, setup, variáveis sem valores reais, build, testes,
    arquitetura, troubleshooting e processo de release.
  • Atualizar documentação/ADRs para refletir a implementação final e adicionar runbook de rollback/
    revogação de release.

Critérios de aceite/verificação

  • Um PR de teste executa todos os checks e não pode ser mesclado quando um deles falha.
  • Um commit sem formatação, teste quebrado ou queda de cobertura é bloqueado.
  • Testes instrumentados executam em emulador reproduzível.
  • Uma tag de homologação produz APK assinado, checksum e artifacts no GitHub Release.
  • O APK publicado contém exatamente os endpoints fornecidos ao job e rejeita os IPs antigos.
  • Logs do workflow não exibem endpoints classificados como secrets, senhas, keystore ou token.
  • Download, checksum, instalação e smoke test do APK anexado são validados.
  • Branch protection, templates e CODEOWNERS estão ativos e documentados.
  • Uma pessoa nova consegue clonar, configurar, executar testes e gerar debug seguindo apenas o README.

Metadata

Metadata

Assignees

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions