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

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 ditunjukPrimarySource. Sumber ini adalah direktori tempat CodeBuild mencari dan menjalankan file buildspec Anda. Kata kunci PrimarySource digunakan untuk menentukan sumber utama di configuration 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.