Automatizzare i build con CodeBuild e buildspec.yml

Automatizzare i deployment su AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Cosa fa CodeBuild

  • CodeBuild è un servizio di build completamente gestito
  • Nessun server da effettuare il provisioning o gestire
  • Esegue il build in un container temporaneo
  • Scala in automatico; paghi solo i minuti di build
  • Si integra con CodePipeline come fase di Build

 

Ciclo di vita di CodeBuild: servizio gestito e container temporaneo

Automatizzare i deployment su AWS

Il file buildspec.yml

  • buildspec.yml: file YAML nella radice del codice sorgente
  • Definisce cosa fa CodeBuild durante il build
  • Quattro fasi eseguite in ordine:
    • install: installa dipendenze e strumenti
    • pre_build: esegue attività di setup prima del build
    • build: compila il codice, esegue i test
    • post_build: crea gli artifact, pulizia finale

buildspec

Automatizzare i deployment su AWS

Esempio reale di buildspec.yml

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

Editor chiaro con un buildspec.yml in quattro fasi: build esegue pytest, post_build impacchetta in app.zip, output come artifact della pipeline

Automatizzare i deployment su AWS

Configurazione dell'ambiente di build

 

Configurazione ambiente CodeBuild: compute, variabili, caching

  • Tipi di calcolo: small, medium, large, 2xlarge
    • Scegli in base a complessità e velocità richieste
  • Variabili d'ambiente: passa configurazioni ai build
    • Conserva i segreti in Parameter Store o Secrets Manager
  • Caching delle dipendenze: memorizza i pacchetti scaricati tra i build
    • Riduce molto i tempi per progetti grandi
Automatizzare i deployment su AWS

Output degli artifact e integrazione in pipeline

 

Output degli artifact CodeBuild su S3 e passaggio a CodePipeline

  • La sezione artifacts definisce cosa produce CodeBuild
  • files: elenco di file o pattern; base-directory: percorso radice
  • L'artifact di output è in S3, passato alla fase successiva automaticamente
  • Percorsi artifact errati causano errori di deploy anche se il build riesce
Automatizzare i deployment su AWS

L'intera catena build-test-deploy

  • Lo sviluppatore fa push del codice su CodeCommit
  • CodePipeline si attiva automaticamente
  • CodeBuild: install -> pre_build -> build -> post_build
  • L'artifact di build passa a CodeDeploy
  • L'applicazione viene distribuita nell'ambiente di destinazione

Catena completa CI/CD: CodeCommit, fasi CodeBuild, CodeDeploy

Automatizzare i deployment su AWS

Esercitiamoci!

Automatizzare i deployment su AWS

Preparing Video For Download...