CI/CD Gate
cloudrift è pensato per girare dentro le pipeline CI/CD. Due ingredienti lo rendono CI-friendly:
--format markdownproduce un report pronto per commenti PR / step summarycostAlertThresholdUsdnel config fa uscire con codice 2 quando lo spreco supera il budget
Configurazione
Nel file cloudrift.config.json (committato nel repo):
{
"costAlertThresholdUsd": 500,
"minAgeDays": 7,
"ignoreTag": "cloudrift:ignore"
}
Se il totale waste supera costAlertThresholdUsd, il comando esce con codice 2 → la pipeline fallisce. I risparmi di tipo optimization non contano mai verso il gate.
GitHub Actions — esempio completo
name: Cloud cost check
on: [pull_request]
permissions:
contents: read
jobs:
cloudrift:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
repository: elleVas/cloudrift
path: cloudrift-cli
- uses: pnpm/action-setup@v4
with: { version: 9 }
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
cache-dependency-path: cloudrift-cli/pnpm-lock.yaml
- run: pnpm install --frozen-lockfile
working-directory: cloudrift-cli
- run: pnpm nx build cli
working-directory: cloudrift-cli
- uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
# Pubblica il report nel step summary; esce 2 se over budget
- run: node cloudrift-cli/apps/cli/dist/main.js analyze -r us-east-1 eu-west-1 --format markdown >> "$GITHUB_STEP_SUMMARY"
Exit codes
| Code | Significato |
|---|---|
| 0 | Scansione completata, spreco sotto soglia (o nessuna soglia configurata) |
| 2 | Spreco totale supera costAlertThresholdUsd — pipeline bloccata |
Note
- In CI (o quando stdout non è un TTY), il picker interattivo non appare: tutti gli scanner vengono eseguiti automaticamente
- Una volta pubblicato
@cloudrift/clisu npm, gli step di build si ridurranno anpx @cloudrift/cli@latest analyze … cloudrift.config.jsonviene letto dalla working directory corrente — committalo nel repo per condividerlo col team