Automatiser les builds 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 build entièrement géré
  • Aucun serveur à fournir ni à gérer
  • Exécute votre build dans un conteneur temporaire
  • Met à l'échelle automatiquement ; vous ne payez que les minutes de build
  • S'intègre à CodePipeline comme étape Build

 

Cycle de vie d'un service géré CodeBuild avec conteneur temporaire

Automatiser les déploiements sur AWS

Le fichier buildspec.yml

  • buildspec.yml : fichier YAML à la racine du code source
  • Définit les actions de CodeBuild pendant le build
  • Quatre phases exécutées dans l'ordre :
    • install : installer dépendances et outils
    • pre_build : préparer l'environnement avant le build
    • build : compiler le code, exécuter les tests
    • post_build : empaqueter les artefacts, nettoyage

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 4 phases ; build lance pytest et post_build crée app.zip, artefact du pipeline

Automatiser les déploiements sur AWS

Configuration de l'environnement de build

 

Configuration d'environnement CodeBuild : ressources de calcul, variables d'environnement, cache

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

Sorties d'artefacts et intégration au pipeline

 

Sortie des artefacts CodeBuild vers S3 et passage à CodePipeline

  • La section artifacts définit les sorties de CodeBuild
  • 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 provoquent des échecs de déploiement même si le build réussit
Automatiser les déploiements sur AWS

Chaîne complète build-test-deploy

  • Un développeur pousse le code vers CodeCommit
  • CodePipeline se déclenche automatiquement
  • CodeBuild : install -> pre_build -> build -> post_build
  • L'artefact de build est transmis à CodeDeploy
  • L'application est déployée sur 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...