

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

# Jalankan build dalam batch
<a name="batch-build"></a>

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

**Topics**
+ [Peran keamanan](#batch_security_role)
+ [Jenis pembuatan Batch](#batch_build_types)
+ [Mode laporan batch](#batch-report-mode)
+ [Informasi selengkapnya](#batch_more_info)

## Peran keamanan
<a name="batch_security_role"></a>

Build batch memperkenalkan peran keamanan baru dalam konfigurasi batch. Peran baru ini diperlukan karena CodeBuild harus dapat memanggil`StartBuild`,`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 pembuatan Batch
<a name="batch_build_types"></a>

CodeBuild mendukung jenis build batch berikut:

**Topics**
+ [Membangun grafik](#batch_build_graph)
+ [Membangun daftar](#batch_build_list)
+ [Membangun matriks](#batch_build_matrix)
+ [Bangun fanout](#batch_build_fanout)

### Membangun grafik
<a name="batch_build_graph"></a>

Grafik build mendefinisikan sekumpulan 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:
+ `build1`berjalan terlebih dahulu karena tidak memiliki dependensi.
+ `build2`memiliki ketergantungan pada`build1`, jadi `build2` jalankan setelah `build1` selesai.
+ `build3`memiliki ketergantungan pada`build2`, jadi `build3` jalankan setelah `build2` selesai.

Untuk informasi selengkapnya tentang sintaks buildspec grafik build, lihat. [`batch/build-graph`](batch-build-buildspec.md#build-spec.batch.build-graph)

### Membangun daftar
<a name="batch_build_list"></a>

Daftar build mendefinisikan sejumlah tugas yang berjalan secara paralel. 

Contoh berikut mendefinisikan daftar build. The `build1` and `build2` build 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-list`](batch-build-buildspec.md#build-spec.batch.build-list)

### Membangun matriks
<a name="batch_build_matrix"></a>

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-failure`diatur ke `false`
+ `env/type`diatur ke `LINUX_CONTAINER`
+ `env/image`diatur ke `aws/codebuild/amazonlinux-x86_64-standard:4.0`
+ `env/privileged-mode`diatur ke `true`

Build ini berjalan secara paralel.

Untuk informasi selengkapnya tentang sintaks buildspec matriks build, lihat. [`batch/build-matrix`](batch-build-buildspec.md#build-spec.batch.build-matrix)

### Bangun fanout
<a name="batch_build_fanout"></a>

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` bidang.

Contoh berikut mendefinisikan fanout build 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 tes secara paralel.

Untuk informasi selengkapnya tentang sintaks buildspec grafik build, lihat. [`batch/build-fanout`](batch-build-buildspec.md#build-spec.batch.build-fanout)

## Mode laporan batch
<a name="batch-report-mode"></a>

Jika penyedia sumber untuk project Anda adalah Bitbucket, GitHub, atau GitHub Enterprise, dan project Anda dikonfigurasi untuk melaporkan status build ke penyedia sumber, Anda dapat memilih bagaimana status build batch Anda 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 satu per satu.

Untuk informasi selengkapnya, lihat topik berikut:
+ [Konfigurasi Batch (buat)](create-project.md#create-project-console-batch-config)
+ [Konfigurasi Batch (pembaruan)](change-project.md#change-project-console-batch-config)

## Informasi selengkapnya
<a name="batch_more_info"></a>

Untuk informasi selengkapnya, lihat topik berikut:
+ [Referensi buildspec build Batch](batch-build-buildspec.md)
+ [Konfigurasi Batch](create-project.md#create-project-console-batch-config)
+ [Jalankan batch build (AWS CLI)](run-batch-build-cli.md)
+ [Hentikan pembuatan batch AWS CodeBuild](stop-batch-build.md)