Builds automatiseren met CodeBuild en buildspec.yml

Deployments automatiseren op AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Wat CodeBuild doet

  • CodeBuild is een volledig beheerde buildservice
  • Geen servers om te voorzien of te beheren
  • Voert je build uit in een tijdelijke container
  • Schaal automatisch; je betaalt alleen voor buildminuten
  • Integreert met CodePipeline als de Build-fase

 

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

Deployments automatiseren op AWS

Het buildspec.yml-bestand

  • buildspec.yml: YAML-bestand in de root van je broncode
  • Bepaalt wat CodeBuild tijdens de build doet
  • Vier fasen voeren in volgorde uit:
    • install: Afhankelijkheden en tools installeren
    • pre_build: Setuptaken vóór het bouwen
    • build: Code compileren, tests draaien
    • post_build: Artifacts verpakken, opruimen

buildspec

Deployments automatiseren op AWS

Een echt buildspec.yml-voorbeeld

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

Code-editor met licht thema met een buildspec.yml met vier fasen, waarbij build pytest-tests draait en post_build de code verpakt in app.zip, uitgegeven als het pipeline-artifact

Deployments automatiseren op AWS

Build-omgevingsconfiguratie

 

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

  • Compute types: small, medium, large, 2xlarge
    • Kies op basis van complexiteit en snelheidseis
  • Omgevingsvariabelen: Geef configuratie door aan builds
    • Sla secrets op in Parameter Store of Secrets Manager
  • Afhankelijkhedencache: Tussen builds gedownloade pakketten cachen
    • Verkort buildtijd aanzienlijk bij grote projecten
Deployments automatiseren op AWS

Artifact-outputs en pipeline-integratie

 

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

  • De sectie artifacts bepaalt wat CodeBuild oplevert
  • files: Lijst van bestanden of patronen; base-directory: hoofdpad
  • Output-artifact wordt in S3 opgeslagen en automatisch doorgegeven
  • Verkeerde artifactpaden veroorzaken deploy-fouten, ook bij geslaagde builds
Deployments automatiseren op AWS

De volledige build-test-deploy-keten

  • Developer pusht code naar CodeCommit
  • CodePipeline triggert automatisch
  • CodeBuild: install -> pre_build -> build -> post_build
  • Build-artifact gaat door naar CodeDeploy
  • Applicatie wordt uitgerold naar de doelsituatie

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

Deployments automatiseren op AWS

Laten we oefenen!

Deployments automatiseren op AWS

Preparing Video For Download...