View a markdown version of this page

AWS CodeBuild membangun dan menguji referensi tindakan - AWS CodePipeline

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

AWS CodeBuild membangun dan menguji referensi tindakan

Memungkinkan Anda menjalankan build dan pengujian sebagai bagian dari pipeline Anda. Saat Anda menjalankan tindakan CodeBuild build atau test, perintah yang ditentukan dalam buildspec dijalankan di dalam wadah. CodeBuild Semua artefak yang ditentukan sebagai artefak input untuk suatu CodeBuild tindakan tersedia di dalam wadah yang menjalankan perintah. CodeBuild dapat memberikan tindakan build atau test. Untuk informasi selengkapnya, silakan lihat Panduan Pengguna AWS CodeBuild.

Saat Anda menggunakan CodePipeline wizard di konsol untuk membuat proyek build, proyek CodeBuild build menunjukkan penyedia sumbernya CodePipeline. Saat Anda membuat proyek build di CodeBuild konsol, Anda tidak dapat menentukan CodePipeline sebagai penyedia sumber, tetapi menambahkan tindakan build ke pipeline Anda menyesuaikan sumber di CodeBuild konsol. Untuk informasi selengkapnya, lihat ProjectSource di dalam Referensi API AWS CodeBuild .

Tipe tindakan

  • Kategori: Build atau Test

  • Pemilik: AWS

  • Penyedia: CodeBuild

  • Versi: 1

Parameter konfigurasi

ProjectName

Wajib: Ya

ProjectNameadalah nama proyek pembangunan di CodeBuild.

PrimarySource

Diperlukan: Kondisional

Nilai PrimarySource parameter harus menjadi nama salah satu artefak input untuk tindakan. CodeBuild mencari file buildspec dan menjalankan perintah buildspec di direktori yang berisi versi unzip dari artefak ini.

Parameter ini diperlukan jika beberapa artefak input ditentukan untuk suatu CodeBuild tindakan. Ketika hanya ada satu artefak sumber untuk tindakan tersebut, artefak default ke PrimarySource artefak itu.

BatchEnabled

Wajib: Tidak

Nilai Boolean dari BatchEnabled parameter memungkinkan tindakan untuk menjalankan beberapa build dalam eksekusi build yang sama.

Ketika opsi ini diaktifkan, CombineArtifacts opsi tersedia.

Untuk contoh pipeline dengan build batch diaktifkan, lihat CodePipeline integrasi dengan CodeBuild dan build batch.

BuildspecOverride

Wajib: Tidak

Definisi buildspec sebaris atau deklarasi file buildspec yang menggantikan yang terbaru yang ditentukan dalam proyek build, hanya untuk build ini. Spesifikasi build yang ditentukan pada proyek tidak berubah.

Jika nilai ini diatur, itu bisa menjadi salah satu dari berikut ini:

  • Definisi buildspec sebaris. Untuk informasi selengkapnya, lihat referensi sintaks di sintaks Buildspec.

  • Jalur ke file buildspec alternatif relatif terhadap nilai variabel CODEBUILD_SRC_DIR lingkungan bawaan atau jalur ke bucket S3. Bucket harus Wilayah AWS sama dengan proyek pembangunan. Tentukan file buildspec menggunakan ARN-nya (misalnya,). arn:aws:s3:::my-codebuild-sample2/buildspec.yml Jika nilai ini tidak disediakan atau disetel ke string kosong, kode sumber harus berisi file buildspec di direktori root. Untuk informasi selengkapnya tentang menambahkan jalur, lihat Nama Berkas Buildspec dan Lokasi Penyimpanan.

catatan

Karena properti ini memungkinkan Anda untuk mengubah perintah build yang akan berjalan di wadah, Anda harus mencatat bahwa prinsipal IAM dengan kemampuan untuk memanggil API ini dan mengatur parameter ini dapat mengganti pengaturan default. Selain itu, kami menganjurkan agar Anda menggunakan lokasi buildspec yang dapat dipercaya seperti file di repositori sumber Anda atau bucket Amazon S3.

CombineArtifacts

Wajib: Tidak

Nilai Boolean dari CombineArtifacts parameter menggabungkan semua artefak build dari batch build menjadi satu file artefak untuk tindakan build.

Untuk menggunakan opsi ini, BatchEnabled parameter harus diaktifkan.

EnvironmentVariables

Wajib: Tidak

Nilai parameter ini digunakan untuk mengatur variabel lingkungan untuk CodeBuild tindakan di pipeline Anda. Nilai untuk EnvironmentVariables parameter mengambil bentuk array JSON dari objek variabel lingkungan. Lihat contoh parameter diDeklarasi tindakan (CodeBuild contoh).

Setiap objek memiliki tiga bagian, yang semuanya adalah string:

  • name: Nama atau kunci variabel lingkungan.

  • value: Nilai variabel lingkungan. Saat menggunakan SECRETS_MANAGER tipe PARAMETER_STORE atau, nilai ini harus berupa nama parameter yang telah Anda simpan di AWS System Manager Parameter Store atau rahasia yang telah Anda simpan di AWS Secrets Manager, masing-masing.

    catatan

    Kami sangat tidak menyarankan penggunaan variabel lingkungan untuk menyimpan nilai sensitif, terutama AWS kredenSIAL. Saat Anda menggunakan CodeBuild konsol atau AWS CLI, variabel lingkungan ditampilkan dalam teks biasa. Untuk nilai sensitif, sebaiknya gunakan SECRETS_MANAGER tipe sebagai gantinya.

  • type: (Opsional) Jenis variabel lingkungan. Nilai yang valid adalah PARAMETER_STORE, SECRETS_MANAGER, atau PLAINTEXT. Jika tidak ditentukan, ini default kePLAINTEXT.

catatan

Saat Anda memasukkanname,value, dan type untuk konfigurasi variabel lingkungan Anda, terutama jika variabel lingkungan berisi sintaks variabel CodePipeline keluaran, jangan melebihi batas 1000 karakter untuk bidang nilai konfigurasi. Kesalahan validasi dikembalikan ketika batas ini terlampaui.

Untuk informasi selengkapnya, lihat EnvironmentVariable di Refer AWS CodeBuild ensi API. Untuk contoh CodeBuild tindakan dengan variabel lingkungan yang diselesaikan ke nama GitHub cabang, lihatContoh: Gunakan BranchName variabel dengan variabel CodeBuild lingkungan.

ServiceRoleArnOverride

Wajib: Tidak

Peran IAM ARN yang CodeBuild digunakan sebagai peran layanan untuk build yang dipicu oleh tindakan ini, mengesampingkan peran layanan default yang dikonfigurasi pada CodeBuild proyek. Ketika tidak ada, CodeBuild proyek menggunakan peran layanan defaultnya.

Peran yang ditentukan harus memiliki kebijakan kepercayaan yang memungkinkan codebuild.amazonaws.com layanan untuk mengasumsikannya. Identitas yang digunakan untuk membuat atau memperbarui pipeline dan peran layanan pipeline harus memiliki iam:PassRole izin untuk peran yang ditentukan. Untuk contoh kebijakan, lihat Izin peran layanan: CodeBuild tindakan.

Sebagai praktik terbaik keamanan, ketika CodeBuild proyek dibagikan di beberapa pipeline, sebaiknya tentukan peran cakupan untuk setiap pipeline agar mengikuti prinsip hak istimewa terkecil. Untuk pipeline yang menggunakan tindakan CodeConnections sumber, lihat Tambahkan CodeBuild GitClone izin untuk koneksi ke Bitbucket, GitHub, GitHub Enterprise Server, atau GitLab.com contoh cakupan izin koneksi peran ke repositori tertentu.

catatan

Peran harus berada di AWS akun yang sama dengan CodeBuild proyek.

Artefak masukan

  • Jumlah artefak: 1 to 5

  • Deskripsi CodeBuild : mencari file buildspec dan menjalankan perintah buildspec dari direktori artefak sumber utama. Ketika satu sumber input ditentukan atau ketika lebih dari satu sumber input ditentukan untuk CodeBuild tindakan, artefak tunggal, atau artefak utama dalam kasus beberapa sumber input, harus diatur menggunakan parameter konfigurasi PrimarySource tindakan di. CodePipeline

    Setiap artefak input diekstraksi ke direktorinya sendiri, yang lokasinya disimpan dalam variabel lingkungan. Direktori untuk artefak sumber utama tersedia dengan$CODEBUILD_SRC_DIR. Direktori untuk semua artefak input lainnya tersedia dengan$CODEBUILD_SRC_DIR_yourInputArtifactName.

    catatan

    Artefak yang dikonfigurasi dalam CodeBuild proyek Anda menjadi artefak input yang digunakan oleh CodeBuild tindakan dalam pipeline Anda.

Artefak keluaran

  • Jumlah artefak: 0 to 5

  • Deskripsi: Ini dapat digunakan untuk membuat artefak yang ditentukan dalam file CodeBuild buildspec tersedia untuk tindakan selanjutnya dalam pipeline. Ketika hanya satu artefak keluaran yang ditentukan, artefak ini dapat didefinisikan langsung di bawah artifacts bagian file buildspec. Ketika lebih dari satu artefak keluaran ditentukan, semua artefak yang direferensikan harus didefinisikan sebagai artefak sekunder dalam file buildspec. Nama-nama artefak keluaran di CodePipeline harus cocok dengan pengidentifikasi artefak di file buildspec.

    catatan

    Artefak yang dikonfigurasi dalam CodeBuild proyek Anda menjadi artefak CodePipeline input dalam tindakan pipeline Anda.

    Jika CombineArtifacts parameter dipilih untuk build batch, lokasi artefak keluaran berisi artefak gabungan dari beberapa build yang dijalankan dalam eksekusi yang sama.

Variabel keluaran

Tindakan ini akan menghasilkan sebagai variabel semua variabel lingkungan yang diekspor sebagai bagian dari build. Untuk detail selengkapnya tentang cara mengekspor variabel lingkungan, lihat EnvironmentVariable di Panduan AWS CodeBuild API.

Untuk informasi lebih lanjut tentang menggunakan variabel CodeBuild lingkungan di CodePipeline, lihat contoh diCodeBuild variabel keluaran tindakan. Untuk daftar variabel lingkungan yang dapat Anda gunakan CodeBuild, lihat Vari abel lingkungan di lingkungan build di Panduan AWS CodeBuild Pengguna.

Izin peran layanan: CodeBuild tindakan

Untuk CodeBuild dukungan, tambahkan berikut ini ke pernyataan kebijakan Anda:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "codebuild:BatchGetBuilds", "codebuild:StartBuild", "codebuild:BatchGetBuildBatches", "codebuild:StartBuildBatch" ], "Resource": [ "arn:aws:codebuild:*:111122223333:project/[[ProjectName]]" ], "Effect": "Allow" } ] }

Jika Anda menggunakan ServiceRoleArnOverride parameter, tambahkan iam:PassRole izin berikut untuk mengiz CodePipeline inkan meneruskan peran ke CodeBuild:

{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::111122223333:role/your-codebuild-override-role", "Condition": { "StringEquals": { "iam:PassedToService": "codebuild.amazonaws.com" } } }

Deklarasi tindakan (CodeBuild contoh)

YAML
Name: Build Actions: - Name: PackageExport ActionTypeId: Category: Build Owner: AWS Provider: CodeBuild Version: '1' RunOrder: 1 Configuration: BatchEnabled: 'true' CombineArtifacts: 'true' ProjectName: my-build-project PrimarySource: MyApplicationSource1 EnvironmentVariables: '[{"name":"TEST_VARIABLE","value":"TEST_VALUE","type":"PLAINTEXT"},{"name":"ParamStoreTest","value":"PARAMETER_NAME","type":"PARAMETER_STORE"}]' ServiceRoleArnOverride: 'arn:aws:iam::111122223333:role/my-scoped-codebuild-role' OutputArtifacts: - Name: MyPipeline-BuildArtifact InputArtifacts: - Name: MyApplicationSource1 - Name: MyApplicationSource2
JSON
{ "Name": "Build", "Actions": [ { "Name": "PackageExport", "ActionTypeId": { "Category": "Build", "Owner": "AWS", "Provider": "CodeBuild", "Version": "1" }, "RunOrder": 1, "Configuration": { "BatchEnabled": "true", "CombineArtifacts": "true", "ProjectName": "my-build-project", "PrimarySource": "MyApplicationSource1", "EnvironmentVariables": "[{\"name\":\"TEST_VARIABLE\",\"value\":\"TEST_VALUE\",\"type\":\"PLAINTEXT\"},{\"name\":\"ParamStoreTest\",\"value\":\"PARAMETER_NAME\",\"type\":\"PARAMETER_STORE\"}]", "ServiceRoleArnOverride": "arn:aws:iam::111122223333:role/my-scoped-codebuild-role" }, "OutputArtifacts": [ { "Name": "MyPipeline-BuildArtifact" } ], "InputArtifacts": [ { "Name": "MyApplicationSource1" }, { "Name": "MyApplicationSource2" } ] } ] }

Sumber daya terkait berikut dapat membantu Anda saat Anda mengerjakan tindakan ini.