Mengotomatisasi build dengan CodeBuild dan buildspec.yml

Mengotomatisasi Deployment di AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Apa yang dilakukan CodeBuild

  • CodeBuild adalah layanan build terkelola penuh
  • Tidak perlu menyediakan atau mengelola server
  • Menjalankan build Anda dalam container sementara
  • Skala otomatis; bayar hanya per menit build
  • Terintegrasi dengan CodePipeline sebagai tahap Build

 

Siklus hidup container sementara pada layanan CodeBuild terkelola

Mengotomatisasi Deployment di AWS

File buildspec.yml

  • buildspec.yml: file YAML di root kode sumber Anda
  • Menentukan apa yang dilakukan CodeBuild saat build
  • Empat fase dieksekusi berurutan:
    • install: Pasang dependensi dan alat
    • pre_build: Jalankan tugas penyiapan sebelum build
    • build: Kompilasi kode, jalankan pengujian
    • post_build: Kemasi artefak, bersihkan

buildspec

Mengotomatisasi Deployment di AWS

Contoh buildspec.yml nyata

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

Editor kode tema terang menampilkan buildspec.yml dengan empat fase, di mana build menjalankan pytest dan post_build mengemas kode ke app.zip, keluar sebagai artefak pipeline

Mengotomatisasi Deployment di AWS

Konfigurasi lingkungan build

 

Konfigurasi lingkungan build: komputasi, variabel lingkungan, cache dependensi

  • Tipe komputasi: small, medium, large, 2xlarge
    • Pilih sesuai kompleksitas build dan kebutuhan kecepatan
  • Variabel lingkungan: Teruskan konfigurasi ke build
    • Simpan rahasia di Parameter Store atau Secrets Manager
  • Cache dependensi: Cache paket yang diunduh antar build
    • Memangkas waktu build secara signifikan untuk proyek besar
Mengotomatisasi Deployment di AWS

Keluaran artefak dan integrasi pipeline

 

Output artefak CodeBuild ke S3 dan diteruskan ke CodePipeline

  • Bagian artifacts menentukan keluaran CodeBuild
  • files: Daftar file atau pola; base-directory: path root
  • Artefak keluaran disimpan di S3, otomatis diteruskan ke tahap berikutnya
  • Path artefak yang salah menyebabkan kegagalan deploy meski build sukses
Mengotomatisasi Deployment di AWS

Rantai build–test–deploy lengkap

  • Developer mendorong kode ke CodeCommit
  • CodePipeline terpicu otomatis
  • CodeBuild: install -> pre_build -> build -> post_build
  • Artefak build mengalir ke CodeDeploy
  • Aplikasi dideploy ke lingkungan target

Rangkaian penuh CI/CD: CodeCommit, fase CodeBuild, lalu CodeDeploy

Mengotomatisasi Deployment di AWS

Ayo berlatih!

Mengotomatisasi Deployment di AWS

Preparing Video For Download...