Habilidad de Arquitectura de CI/CD y Despliegue
Esta habilidad guía a los agentes de IA y contribuyentes en el mantenimiento de pipelines CI/CD de GitHub Actions, publicación de imágenes de contenedor y despliegues automatizados.
1. Desarrollo Local Basado en Ramas y Cadencia de Commits
[!IMPORTANTE] CREA UNA RAMA LOCAL PRIMERO Y HAZ COMMITS CON FRECUENCIA: Siempre comienza creando una rama local dedicada desde
main:git switch -c <desarrollador-o-agente>/main/<nombre-de-funcionalidad>Realiza commits en cada hito lógico (
más commits = más trabajo explicativo). Nunca hagas commit directamente enmain.
2. Pipeline CI/CD Multi-Entorno
jobs:
backend-test:
name: Pruebas y Compilación de Backend
steps:
- uses: actions/setup-go@v5
- run: go test -v -race ./...
- run: go build -v ./...
service-test:
name: Pruebas y Linting del Servicio Python
steps:
- uses: astral-sh/setup-uv@v5
- run: uv sync
- run: uv run pytest
frontend-test:
name: Linting y Compilación del Frontend
steps:
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
- run: pnpm install --frozen-lockfile
- run: pnpm run lint
- run: pnpm run build
3. Runbook de Espejo Local de CI
Para garantizar que tus cambios pasen las verificaciones de CI antes de hacer commit:
# 1. Ejecutar la puerta de pre-commit (espejo exacto de las verificaciones CI)
make pre-commit
# 2. Alternativamente, ejecutar trabajos individuales de CI localmente:
# Go Backend:
go test -v -race ./... && go build -v ./...
# Python Service:
uv run pytest
# Frontend:
pnpm run lint && pnpm run build
4. Secretos vs Configuración Centralizada
- Secretos: Estrictamente definidos en
.env/ Secretos de CI y paneles de tiempo de ejecución (DATABASE_URL,API_KEY,JWT_SECRET). - Valores por Defecto Operativos: Centralizados en módulos de código.
- Nunca codifiques secretos en el YAML del flujo de trabajo de CI ni en los commits de Git.