CircleCI
1. Guarde a chave
Crie um context (por exemplo moatgator) em Organization Settings e adicione MOATGATOR_API_KEY (mg_live_…, escopos builds:write, builds:read). Restrinja o context ao grupo de segurança que cuida dos releases.
2. Adicione o job
.circleci/config.yml
version: 2.1
jobs:
build:
docker: [{ image: cimg/android:2024.01 }]
steps:
- checkout
- run: ./gradlew bundleRelease
- persist_to_workspace:
root: .
paths: [app/build/outputs/bundle/release]
moatgator:
docker: [{ image: cimg/node:22.5 }]
steps:
- attach_workspace: { at: . }
- checkout
- run: npx moatgator scan app/build/outputs/bundle/release/app-release.aab --min-grade C
- run: npx moatgator protect app/build/outputs/bundle/release/app-release.aab --app-version "$CIRCLE_TAG" --commit "$CIRCLE_SHA1"
workflows:
release:
jobs:
- build:
filters: { tags: { only: /^v.*/ }, branches: { ignore: /.*/ } }
- moatgator:
context: moatgator
requires: [build]
filters: { tags: { only: /^v.*/ }, branches: { ignore: /.*/ } }
Notas
- Só builds de tag rodam, e só o job
moatgatorrecebe o context. Jobs de pull requests de forks nunca veem a chave. - Em produção, fixe as imagens por digest.
- Os códigos de saída estão na visão geral de CI.