Automatizace buildů pomocí CodeBuild a buildspec.yml

Automatizace deploymentů na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Co CodeBuild dělá

  • CodeBuild je plně řízená build služba
  • Žádné servery ke správě ani konfiguraci
  • Build se spouští v dočasném kontejneru
  • Automaticky se škáluje; platíš jen za minuty buildu
  • Integruje se s CodePipeline jako fáze Build

 

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

Automatizace deploymentů na AWS

Soubor buildspec.yml

  • buildspec.yml: YAML soubor v kořenovém adresáři zdrojového kódu
  • Definuje, co CodeBuild dělá během buildu
  • Čtyři fáze se spouštějí v tomto pořadí:
    • install: instalace závislostí a nástrojů
    • pre_build: úkoly před samotným buildem
    • build: kompilace kódu, spouštění testů
    • post_build: zabalení artefaktů, úklid

buildspec

Automatizace deploymentů na AWS

Reálný příklad buildspec.yml

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

Editor kódu ve světlém tématu zobrazuje soubor buildspec.yml se čtyřmi fázemi, kde build spouští testy pytest a post_build zabaluje kód do app.zip, který se použije jako výstupní artefakt pipeline

Automatizace deploymentů na AWS

Konfigurace build prostředí

 

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

  • Typy výpočetních prostředků: small, medium, large, 2xlarge
    • Vyber podle složitosti buildu a požadované rychlosti
  • Proměnné prostředí: předávají konfiguraci buildu
    • Tajné údaje ulož do Parameter Store nebo Secrets Manager
  • Cachování závislostí: ukládá stažené balíčky mezi jednotlivými buildy
    • U velkých projektů výrazně zkracuje čas buildu
Automatizace deploymentů na AWS

Výstupní artefakty a integrace s pipeline

 

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

  • Sekce artifacts definuje výstup CodeBuild
  • files: seznam souborů nebo vzorů; base-directory: kořenová cesta
  • Výstupní artefakt se uloží do S3 a automaticky se předá do další fáze
  • Špatné cesty k artefaktům způsobí neúspěch nasazení, i když build proběhne úspěšně
Automatizace deploymentů na AWS

Celý řetězec build-test-deploy

  • Kód se pushne do CodeCommit
  • CodePipeline se automaticky spustí
  • CodeBuild: install -> pre_build -> build -> post_build
  • Build artefakt se přesune do CodeDeploy
  • Aplikace se nasadí do cílového prostředí

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

Automatizace deploymentů na AWS

Pojďme cvičit!

Automatizace deploymentů na AWS

Preparing Video For Download...