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.
Objetivo da PR
Fechar a modernização com gates obrigatórios em PR e entrega automatizada de APK em GitHub Release.
Tarefas detalhadas
pull_requestcom:assembleDebug;concurrencypara cancelar execuções antigas da mesma branch, timeouts e permissões mínimas.vX.Y.Z) ou publicação de Release:MEDTRACK_API_BASE_URLeMEDTRACK_SCAN_URLvia GitHub Environment variables/secrets;assembleRelease;local.properties, keystore ou outputs intermediários sensíveis;productioncom aprovação manual e secrets próprios. Endpoints não devemser reutilizados de ambientes de PR.
CODEOWNERS.main: PR obrigatório, aprovações, conversas resolvidas, branch atualizada,status checks obrigatórios, bloqueio de force push/delete e revisão de CODEOWNERS.
README.mdcom pré-requisitos, setup, variáveis sem valores reais, build, testes,arquitetura, troubleshooting e processo de release.
revogação de release.
Critérios de aceite/verificação