View a markdown version of this page

AWS CodePipeline sampel untuk CodeBuild - AWS CodeBuild

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

Contoh CodePipeline/CodeBuild integrasi dan build batch

Sampel ini menunjukkan 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.

Contoh CodePipeline/CodeBuild integrasi dan build batch

AWS CodeBuild mendukung pembuatan batch. Contoh berikut menunjukkan cara menggunakan AWS CodePipeline untuk membuat proyek build yang menggunakan build batch.

Anda dapat menggunakan JSON-formatted file yang mendefinisikan struktur pipeline Anda, dan kemudian menggunakannya dengan AWS CLI untuk membuat pipeline. Untuk informasi selengkapnya, lihat Referensi struktur AWS CodePipeline pipa di Panduan AWS CodePipeline Pengguna.

Bangun batch dengan artefak individu

Gunakan file JSON berikut sebagai contoh struktur pipeline yang membuat batch build dengan artefak terpisah. Untuk mengaktifkan build batch 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-nama artefak keluaran yang ditentukan dalam file JSON pipeline harus sesuai dengan pengenal build dan artefak yang ditentukan dalam file buildspec Anda. Sintaks 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 keluaranbuild1_artifact1, CodeBuild akan mengunggah artefak artifact1 sekunder build1 ke lokasibuild1_artifact1, dan seterusnya. Jika hanya satu lokasi keluaran yang ditentukan, nama seharusnya buildIdentifier hanya.

Setelah Anda membuat file JSON, 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.

Bangun batch dengan artefak gabungan

Gunakan file JSON berikut sebagai contoh struktur pipeline yang membuat batch build dengan artefak gabungan. Untuk mengaktifkan build batch 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 build batch, hanya ada satu output yang diizinkan. CodeBuild akan menggabungkan artefak utama dari semua build menjadi satu file ZIP tunggal.

Setelah Anda membuat file JSON, 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 JSON-formatted file yang mendefinisikan struktur pipeline Anda, dan kemudian menggunakannya dengan AWS CLI untuk membuat pipeline. Gunakan file JSON berikut sebagai contoh struktur pipeline 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 file JSON ini:

  • Salah satu sumber input Anda harus ditunjuk sebagaiPrimarySource. Sumber ini adalah direktori tempat mencari CodeBuild dan menjalankan file buildspec Anda. Kata kunci PrimarySource digunakan untuk menentukan sumber utama di configuration bagian CodeBuild tahap dalam file JSON.

  • Setiap sumber input diinstal 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-nama artefak keluaran yang ditentukan dalam file JSON pipeline harus cocok 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 file JSON, 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.