Automatiser les compilations avec CodeBuild et buildspec.yml

Automatiser les déploiements sur AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Ce que fait CodeBuild

  • CodeBuild est un service de compilation entièrement géré
  • Aucun serveur à approvisionner ni à gérer
  • Exécute votre compilation dans un conteneur temporaire
  • Mise à l'échelle automatique ; vous payez seulement les minutes de compilation
  • S'intègre à CodePipeline comme étape Build

 

Cycle de vie : service géré CodeBuild et conteneur temporaire

Automatiser les déploiements sur AWS

Le fichier buildspec.yml

  • buildspec.yml : fichier YAML à la racine de votre code source
  • Définit ce que CodeBuild exécute pendant la compilation
  • Quatre phases s'exécutent dans l'ordre :
    • install : installer les dépendances et outils
    • pre_build : tâches de préparation avant la compilation
    • build : compiler le code, exécuter les tests
    • post_build : empaqueter les artefacts, nettoyer

buildspec

Automatiser les déploiements sur AWS

Exemple réel 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 . puis echo "Build completed"

Éditeur clair affichant un buildspec.yml en quatre phases ; build lance pytest et post_build empaquette en app.zip, remis comme artefact du pipeline

Automatiser les déploiements sur AWS

Configuration de l'environnement de compilation

 

Configuration d'environnement CodeBuild : calcul, variables, cache

  • Types de calcul : small, medium, large, 2xlarge
    • À choisir selon la complexité et la vitesse requise
  • Variables d'environnement : transmettre la configuration aux compilations
    • Stocker les secrets dans Parameter Store ou Secrets Manager
  • Mise en cache des dépendances : réutiliser les paquets téléchargés entre compilations
    • Réduit fortement le temps de compilation pour les gros projets
Automatiser les déploiements sur AWS

Sorties d'artefacts et intégration au pipeline

 

Sortie d'artefacts CodeBuild vers S3 et passage à CodePipeline

  • La section artifacts définit ce que CodeBuild produit
  • files : liste de fichiers ou motifs ; base-directory : chemin racine
  • L'artefact de sortie est stocké dans S3 et transmis à l'étape suivante automatiquement
  • De mauvais chemins d'artefacts causent des échecs de déploiement même si la compilation réussit
Automatiser les déploiements sur AWS

Chaîne complète : compiler, tester, déployer

  • Le développeur pousse le code vers CodeCommit
  • CodePipeline se déclenche automatiquement
  • CodeBuild : install -> pre_build -> build -> post_build
  • L'artefact de compilation passe à CodeDeploy
  • L'application est déployée dans l'environnement cible

Chaîne CI/CD complète : CodeCommit, phases CodeBuild, CodeDeploy

Automatiser les déploiements sur AWS

Passons à la pratique !

Automatiser les déploiements sur AWS

Preparing Video For Download...