Automatiza builds con CodeBuild y buildspec.yml

Automatización de despliegues en AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Qué hace CodeBuild

  • CodeBuild es un servicio de compilación totalmente gestionado
  • Sin servidores que aprovisionar ni administrar
  • Ejecuta tu build en un contenedor temporal
  • Escala automáticamente; pagas solo por minutos de build
  • Se integra con CodePipeline como etapa de Build

 

1-codebuild-managed-service-temporary-container-lifecycle.png

Automatización de despliegues en AWS

El archivo buildspec.yml

  • buildspec.yml: archivo YAML en la raíz del código
  • Define qué hace CodeBuild durante el build
  • Cuatro fases en orden:
    • install: instalar dependencias y herramientas
    • pre_build: tareas previas al build
    • build: compilar código y ejecutar tests
    • post_build: empaquetar artefactos y limpiar

buildspec

Automatización de despliegues en AWS

Un ejemplo real de buildspec.yml

  • install: pip install -r requirements.txt
  • pre_build: [ -z "$DB_URL" ] && exit 1
  • build: pytest tests/
  • post_build: zip -r app.zip . y luego echo "Build completed"

Editor de código en tema claro mostrando un buildspec.yml con cuatro fases, donde build ejecuta pytest tests y post_build empaqueta el código en app.zip, como artefacto de la canalización

Automatización de despliegues en AWS

Configuración del entorno de build

 

4-codebuild-environment-config-compute-envvars-caching.png

  • Tipos de cómputo: small, medium, large, 2xlarge
    • Elige según la complejidad y la velocidad requeridas
  • Variables de entorno: pasan configuración a los builds
    • Guarda secretos en Parameter Store o Secrets Manager
  • Caché de dependencias: reutiliza paquetes descargados entre builds
    • Reduce mucho el tiempo de build en proyectos grandes
Automatización de despliegues en AWS

Artefactos de salida e integración en la canalización

 

5-codebuild-artifact-output-s3-codepipeline-handoff.png

  • La sección artifacts define qué genera CodeBuild
  • files: lista de archivos o patrones; base-directory: ruta raíz
  • El artefacto se guarda en S3 y pasa a la siguiente etapa automáticamente
  • Rutas incorrectas provocan fallos de despliegue aunque el build haya ido bien
Automatización de despliegues en AWS

Cadena completa: build, test y deploy

  • La persona desarrolladora hace push a CodeCommit
  • CodePipeline se activa automáticamente
  • CodeBuild: install -> pre_build -> build -> post_build
  • El artefacto de build pasa a CodeDeploy
  • La aplicación se despliega en el entorno objetivo

6-full-cicd-chain-codecommit-codebuild-phases-codedeploy.png

Automatización de despliegues en AWS

¡Vamos a practicar!

Automatización de despliegues en AWS

Preparing Video For Download...