Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS CodePipeline sampel untuk CodeBuild
Bagian ini menjelaskan integrasi sampel antara CodePipeline dan CodeBuild.
Sampel | Deskripsi |
---|---|
Sampel CodePipeline CodeBuild /integrasi dan pembuatan batch |
Sampel ini mendemonstrasikan cara menggunakan AWS CodePipeline untuk membuat proyek build yang menggunakan build batch. |
Contoh CodePipeline CodeBuild /integrasi dengan beberapa sumber input dan artefak keluaran |
Contoh ini menunjukkan cara menggunakan AWS CodePipeline untuk membuat proyek build yang menggunakan beberapa sumber input untuk membuat beberapa artefak keluaran. |
Sampel CodePipeline CodeBuild /integrasi dan pembuatan batch
AWS CodeBuild mendukung pembuatan batch. Contoh berikut menunjukkan cara menggunakan AWS CodePipeline untuk membuat proyek build yang menggunakan build batch.
Anda dapat menggunakan file JSON berformat -yang mendefinisikan struktur pipeline Anda, dan kemudian menggunakannya dengan file AWS CLI untuk membuat pipeline. Untuk informasi selengkapnya, lihat Referensi struktur AWS CodePipeline pipa di Panduan AWS CodePipeline Pengguna.
Batch build dengan artefak individual
Gunakan JSON file berikut sebagai contoh struktur pipeline yang membuat batch build dengan artefak terpisah. Untuk mengaktifkan batch build in CodePipeline, atur BatchEnabled
parameter configuration
objek ketrue
.
{ "pipeline": { "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source1", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source1" } ], "configuration": { "S3Bucket": "
<my-input-bucket-name>
", "S3ObjectKey": "my-source-code-file-name.zip" }, "runOrder": 1 }, { "inputArtifacts": [], "name": "Source2", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source2" } ], "configuration": { "S3Bucket": "<my-other-input-bucket-name>
", "S3ObjectKey": "my-other-source-code-file-name.zip" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "source1" }, { "name": "source2" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "CodeBuild" }, "outputArtifacts": [ { "name": "build1" }, { "name": "build1_artifact1" }, { "name": "build1_artifact2" }, { "name": "build2_artifact1" }, { "name": "build2_artifact2" } ], "configuration": { "ProjectName": "my-build-project-name", "PrimarySource": "source1", "BatchEnabled": "true" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "<AWS-CodePipeline-internal-bucket-name>
" }, "name": "my-pipeline-name", "version": 1 } }
Berikut ini adalah contoh file CodeBuild buildspec yang akan bekerja dengan konfigurasi pipeline ini.
version: 0.2 batch: build-list: - identifier: build1 env: compute-type: BUILD_GENERAL1_SMALL - identifier: build2 env: compute-type: BUILD_GENERAL1_MEDIUM phases: build: commands: - echo 'file' > output_file artifacts: files: - output_file secondary-artifacts: artifact1: files: - output_file artifact2: files: - output_file
Nama artefak keluaran yang ditentukan dalam JSON file pipeline harus cocok dengan pengenal build dan artefak yang ditentukan dalam file buildspec Anda. Sintaksnya adalah buildIdentifier
untuk artefak utama, dan buildIdentifier
_artifactIdentifier
untuk artefak sekunder.
Misalnya, untuk nama artefak keluaranbuild1
, CodeBuild akan mengunggah artefak utama build1
ke lokasi. build1
Untuk nama outputbuild1_artifact1
, CodeBuild akan mengunggah artifact1
artefak sekunder build1
ke lokasibuild1_artifact1
, dan sebagainya. Jika hanya satu lokasi output yang ditentukan, namanya harus buildIdentifier
hanya.
Setelah Anda membuat JSON file, Anda dapat membuat pipeline Anda. Gunakan AWS CLI untuk menjalankan perintah create-pipeline dan meneruskan file ke parameter. --cli-input-json
Untuk informasi selengkapnya, lihat Membuat pipeline (CLI) di Panduan AWS CodePipeline Pengguna.
Batch build dengan artefak gabungan
Gunakan JSON file berikut sebagai contoh struktur pipeline yang membuat batch build dengan artefak gabungan. Untuk mengaktifkan batch build in CodePipeline, atur BatchEnabled
parameter configuration
objek ketrue
. Untuk menggabungkan artefak build ke lokasi yang sama, atur CombineArtifacts
parameter configuration
objek ketrue
.
{ "pipeline": { "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source1", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source1" } ], "configuration": { "S3Bucket": "
<my-input-bucket-name>
", "S3ObjectKey": "my-source-code-file-name.zip" }, "runOrder": 1 }, { "inputArtifacts": [], "name": "Source2", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source2" } ], "configuration": { "S3Bucket": "<my-other-input-bucket-name>
", "S3ObjectKey": "my-other-source-code-file-name.zip" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "source1" }, { "name": "source2" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "CodeBuild" }, "outputArtifacts": [ { "name": "output1 " } ], "configuration": { "ProjectName": "my-build-project-name", "PrimarySource": "source1", "BatchEnabled": "true", "CombineArtifacts": "true" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "<AWS-CodePipeline-internal-bucket-name>
" }, "name": "my-pipeline-name", "version": 1 } }
Berikut ini adalah contoh file CodeBuild buildspec yang akan bekerja dengan konfigurasi pipeline ini.
version: 0.2 batch: build-list: - identifier: build1 env: compute-type: BUILD_GENERAL1_SMALL - identifier: build2 env: compute-type: BUILD_GENERAL1_MEDIUM phases: build: commands: - echo 'file' > output_file artifacts: files: - output_file
Jika artefak gabungan diaktifkan untuk pembuatan batch, hanya ada satu output yang diizinkan. CodeBuild akan menggabungkan artefak utama dari semua build menjadi satu file tunggalZIP.
Setelah Anda membuat JSON file, Anda dapat membuat pipeline Anda. Gunakan AWS CLI untuk menjalankan perintah create-pipeline dan meneruskan file ke parameter. --cli-input-json
Untuk informasi selengkapnya, lihat Membuat pipeline (CLI) di Panduan AWS CodePipeline Pengguna.
Contoh CodePipeline CodeBuild /integrasi dengan beberapa sumber input dan artefak keluaran
Sebuah AWS CodeBuild proyek dapat mengambil lebih dari satu sumber input. Itu juga dapat membuat lebih dari satu artefak keluaran. Contoh ini menunjukkan cara menggunakan AWS CodePipeline untuk membuat proyek build yang menggunakan beberapa sumber input untuk membuat beberapa artefak keluaran. Untuk informasi selengkapnya, lihat Beberapa sumber input dan sampel artefak keluaran.
Anda dapat menggunakan file JSON berformat -yang mendefinisikan struktur pipeline Anda, dan kemudian menggunakannya dengan file AWS CLI untuk membuat pipeline. Gunakan JSON file berikut sebagai contoh struktur pipa yang membuat build dengan lebih dari satu sumber input dan lebih dari satu artefak keluaran. Kemudian dalam contoh ini Anda melihat bagaimana file ini menentukan beberapa input dan output. Untuk informasi selengkapnya, lihat referensi struktur CodePipeline pipa di Panduan AWS CodePipeline Pengguna.
{ "pipeline": { "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "
Source1
", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source1
" } ], "configuration": { "S3Bucket": "my-input-bucket-name
", "S3ObjectKey": "my-source-code-file-name.zip
" }, "runOrder": 1 }, { "inputArtifacts": [], "name": "Source2
", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "source2
" } ], "configuration": { "S3Bucket": "my-other-input-bucket-name
", "S3ObjectKey": "my-other-source-code-file-name.zip
" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "source1
" }, { "name": "source2
" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "AWS CodeBuild" }, "outputArtifacts": [ { "name": "artifact1
" }, { "name": "artifact2
" } ], "configuration": { "ProjectName": "my-build-project-name
", "PrimarySource": "source1
" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "AWS-CodePipeline-internal-bucket-name
" }, "name": "my-pipeline-name
", "version": 1 } }
Dalam JSON file ini:
-
Salah satu sumber input Anda harus ditunjuk
PrimarySource
. Sumber ini adalah direktori tempat CodeBuild mencari dan menjalankan file buildspec Anda. Kata kunciPrimarySource
digunakan untuk menentukan sumber utama diconfiguration
bagian CodeBuild tahapan dalam JSON file. -
Setiap sumber input dipasang di direktorinya sendiri. Direktori ini disimpan dalam variabel lingkungan bawaan
$CODEBUILD_SRC_DIR
untuk sumber utama dan$CODEBUILD_SRC_DIR_yourInputArtifactName
untuk semua sumber lainnya. Untuk pipeline dalam sampel ini, dua direktori sumber input adalah$CODEBUILD_SRC_DIR
dan$CODEBUILD_SRC_DIR_source2
. Untuk informasi selengkapnya, lihat Variabel lingkungan di lingkungan build. -
Nama artefak keluaran yang ditentukan dalam JSON file pipeline harus sesuai dengan nama artefak sekunder yang ditentukan dalam file buildspec Anda. Pipeline ini menggunakan file buildspec berikut. Untuk informasi selengkapnya, lihat Sintaks Buildspec.
version: 0.2 phases: build: commands: - touch source1_file - cd $CODEBUILD_SRC_DIR_source2 - touch source2_file artifacts: files: - '**/*' secondary-artifacts: artifact1: base-directory: $CODEBUILD_SRC_DIR files: - source1_file artifact2: base-directory: $CODEBUILD_SRC_DIR_source2 files: - source2_file
Setelah Anda membuat JSON file, Anda dapat membuat pipeline Anda. Gunakan AWS CLI untuk menjalankan perintah create-pipeline dan meneruskan file ke parameter. --cli-input-json
Untuk informasi selengkapnya, lihat Membuat pipeline (CLI) di Panduan AWS CodePipeline Pengguna.