View a markdown version of this page

Jalankan build dalam batch - AWS CodeBuild

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Jalankan build dalam batch

Anda dapat menggunakan AWS CodeBuild untuk menjalankan build proyek secara bersamaan dan terkoordinasi dengan build batch.

Peran keamanan

Build batch memperkenalkan peran keamanan baru dalam konfigurasi batch. Peran baru ini diperlukan karena CodeBuild harus dapat memanggilStartBuild,StopBuild, dan RetryBuild tindakan atas nama Anda untuk menjalankan build sebagai bagian dari batch. Pelanggan harus menggunakan peran baru, dan bukan peran yang sama yang mereka gunakan dalam build mereka, karena dua alasan:

  • Memberikan izin StartBuild, StopBuild, dan RetryBuild kepada peran build akan memungkinkan satu build untuk memulai lebih banyak build melalui buildspec.

  • CodeBuild build batch memberikan batasan yang membatasi jumlah build dan tipe komputasi yang dapat digunakan untuk build dalam batch. Jika peran build memiliki izin ini, build dapat melewati batasan ini sendiri.

Jenis build batch

CodeBuild mendukung jenis build batch berikut:

Bangun grafik

Grafik build mendefinisikan serangkaian tugas yang memiliki dependensi pada tugas lain dalam batch.

Contoh berikut mendefinisikan grafik build yang membuat rantai ketergantungan.

batch: fast-fail: false build-graph: - identifier: build1 env: variables: BUILD_ID: build1 ignore-failure: false - identifier: build2 buildspec: build2.yml env: variables: BUILD_ID: build2 depend-on: - build1 - identifier: build3 env: variables: BUILD_ID: build3 depend-on: - build2 - identifier: build4 env: compute-type: ARM_LAMBDA_1GB - identifier: build5 env: fleet: fleet_name

Dalam contoh ini:

  • build1berjalan lebih dulu karena tidak memiliki dependensi.

  • build2memiliki ketergantungan padabuild1, jadi build2 berjalan setelah build1 selesai.

  • build3memiliki ketergantungan padabuild2, jadi build3 berjalan setelah build2 selesai.

Untuk informasi selengkapnya tentang sintaks buildspec build graph, lihat. batch/build-grafik

Buat daftar

Daftar build mendefinisikan sejumlah tugas yang berjalan secara paralel.

Contoh berikut mendefinisikan daftar build. Buil build1 d build2 dan akan berjalan secara paralel.

batch: fast-fail: false build-list: - identifier: build1 env: variables: BUILD_ID: build1 ignore-failure: false - identifier: build2 buildspec: build2.yml env: variables: BUILD_ID: build2 ignore-failure: true - identifier: build3 env: compute-type: ARM_LAMBDA_1GB - identifier: build4 env: fleet: fleet_name - identifier: build5 env: compute-type: GENERAL_LINUX_XLAGRE

Untuk informasi selengkapnya tentang sintaks buildspec daftar build, lihat. batch/build-daftar

Bangun matriks

Matriks build mendefinisikan tugas dengan konfigurasi berbeda yang berjalan secara paralel. CodeBuild membuat build terpisah untuk setiap kombinasi konfigurasi yang mungkin.

Contoh berikut menunjukkan matriks build dengan dua file buildspec dan tiga nilai untuk variabel lingkungan.

batch: build-matrix: static: ignore-failure: false dynamic: buildspec: - matrix1.yml - matrix2.yml env: variables: MY_VAR: - VALUE1 - VALUE2 - VALUE3

Dalam contoh ini, CodeBuild buat enam build:

  • matrix1.yml dengan $MY_VAR=VALUE1

  • matrix1.yml dengan $MY_VAR=VALUE2

  • matrix1.yml dengan $MY_VAR=VALUE3

  • matrix2.yml dengan $MY_VAR=VALUE1

  • matrix2.yml dengan $MY_VAR=VALUE2

  • matrix2.yml dengan $MY_VAR=VALUE3

Setiap build akan memiliki pengaturan berikut:

  • ignore-failuresetel ke false

  • env/typesetel ke LINUX_CONTAINER

  • env/imagesetel ke aws/codebuild/amazonlinux-x86_64-standard:4.0

  • env/privileged-modesetel ke true

Build ini berjalan secara paralel.

Untuk informasi selengkapnya tentang sintaks buildspec matriks build, lihat. batch/build-matriks

Bangun fanout

Fanout build mendefinisikan tugas yang akan dibagi menjadi beberapa build dalam batch. Ini dapat digunakan untuk menjalankan tes secara paralel. CodeBuild membuat build terpisah untuk setiap pecahan kasus uji berdasarkan nilai yang ditetapkan di parallelism lapangan.

Contoh berikut mendefinisikan build fanout yang membuat lima build yang berjalan secara paralel.

version: 0.2 batch: fast-fail: false build-fanout: parallelism: 5 ignore-failure: false phases: install: commands: - npm install build: commands: - mkdir -p test-results - cd test-results - | codebuild-tests-run \ --test-command 'npx jest --runInBand --coverage' \ --files-search "codebuild-glob-search '**/test/**/*.test.js'" \ --sharding-strategy 'equal-distribution'

Dalam contoh ini, dengan asumsi bahwa ada 100 tes yang perlu dijalankan, CodeBuild membuat lima build yang masing-masing menjalankan 20 pengujian secara paralel.

Untuk informasi selengkapnya tentang sintaks buildspec build graph, lihat. batch/build-fanout

Mode laporan batch

Jika penyedia sumber untuk proyek Anda adalah Bitbucket, GitHub, atau GitHub Enterprise, dan proyek Anda dikonfigurasi untuk melaporkan status build ke penyedia sumber, Anda dapat memilih bagaimana Anda ingin status build batch dikirim ke penyedia sumber. Anda dapat memilih agar status dikirim sebagai laporan status agregat tunggal untuk batch, atau memiliki status setiap build dalam batch yang dilaporkan secara individual.

Untuk informasi selengkapnya, lihat topik berikut:

Informasi selengkapnya

Untuk informasi selengkapnya, lihat topik berikut: