CI/CD
Bitbucket Pipelines
graph LR
PUSH["Push a cualquier rama"] --> INSTALL["pnpm install<br/>--frozen-lockfile"]
INSTALL --> MIGRATE["pnpm db:migrate:remote"]
MIGRATE --> DEPLOY["pnpm deploy"]
DEPLOY --> LIVE["✅ En producción"]
style LIVE fill:#00d4aa,color:#000
Pipeline
# bitbucket-pipelines.yml
image: node:20-alpine
definitions:
caches:
pnpm: ~/.local/share/pnpm/store
pipelines:
default:
- step:
name: Deploy to Cloudflare Workers
caches:
- pnpm
script:
- corepack enable
- corepack prepare pnpm@latest --activate
- pnpm install --frozen-lockfile
- pnpm db:migrate:remote
- pnpm deploy
Variables de repositorio
Configurar en Bitbucket → Repository Settings → Repository Variables:
| Variable | Descripción |
|---|---|
CLOUDFLARE_API_TOKEN |
Token de API de Cloudflare con permisos de Workers y D1 |
CLOUDFLARE_ACCOUNT_ID |
ID de la cuenta de Cloudflare |
Obtener el token
En Cloudflare Dashboard → My Profile → API Tokens → Create Token → Edit Cloudflare Workers.
Flujo de deploy
sequenceDiagram
participant DEV as Developer
participant BB as Bitbucket
participant CF as Cloudflare
DEV->>BB: git push
BB->>BB: Install dependencies (pnpm)
BB->>CF: wrangler d1 migrations apply (remote)
Note over BB,CF: Ejecuta migraciones SQL pendientes
BB->>CF: wrangler deploy
Note over BB,CF: Sube worker + assets estáticos
CF-->>BB: Deploy OK
BB-->>DEV: ✅ Pipeline passed