Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial: Konfigurasikan CodeBuild-hosted GitLab pelari
Tutorial ini menunjukkan cara mengkonfigurasi CodeBuild proyek Anda untuk menjalankan pekerjaan GitLab CI/CD pipeline. Untuk informasi selengkapnya tentang menggunakan GitLab atau Dik GitLab elola Sendiri dengan CodeBuild, lihatSelf-managed GitLab pelari di AWS CodeBuild.
Untuk menyelesaikan tutorial ini, Anda harus terlebih dahulu:
-
Terhubung dengan aplikasi OAuth dengan menggunakan. CodeConnections Perhatikan bahwa saat menghubungkan dengan aplikasi OAuth, Anda harus menggunakan CodeBuild konsol untuk melakukannya. Untuk instruksi lebih lanjut, lihatGitLab akses masuk CodeBuild.
-
Hubungkan CodeBuild ke GitLab akun Anda. Untuk melakukannya, Anda dapat menambahkan GitLab sebagai penyedia sumber di konsol. Untuk petunjuk, lihat GitLab akses masuk CodeBuild.
catatan
Ini hanya perlu dilakukan jika Anda belum terhubung ke GitLab akun Anda.
Dengan fitur ini, CodeBuild perlu izin tambahan, seperti
create_runnerdanmanage_runnerdari aplikasi GitLab OAuth. Jika ada CodeConnections untuk GitLab akun tertentu, maka akun tersebut tidak secara otomatis meminta pembaruan izin. Untuk melakukannya, Anda dapat pergi ke CodeConnections konsol dan membuat koneksi dummy ke GitLab akun yang sama untuk memicu otorisasi ulang untuk mendapatkan izin tambahan. Setelah menyelesaikan langkah ini, semua koneksi yang ada dapat menggunakan fitur runner. Setelah selesai, Anda dapat menghapus koneksi dummy.
Langkah 1: Buat CodeBuild proyek dengan webhook
Pada langkah ini, Anda akan membuat CodeBuild proyek dengan webhook dan meninjaunya di GitLab konsol.
Untuk membuat CodeBuild proyek dengan webhook
Buka AWS CodeBuild konsol di https://console.aws.amazon.com/codesuite/codebuild/home
. -
Buat proyek pembangunan. Untuk informasi selengkapnya, lihat Membuat proyek build (konsol) dan Jalankan build (konsol).
Di tipe proyek, pilih proyek Runner.
-
Dalam Pelari:
-
Untuk penyedia Runner, pilih GitLab.
-
Untuk Credential, pilih salah satu dari yang berikut ini:
-
Pilih Kreden si sumber default. Koneksi default menerapkan GitLab koneksi default di semua proyek.
-
Pilih Kreden si sumber kustom. Koneksi kustom menerapkan GitLab koneksi kustom yang menggantikan setelan default akun Anda.
catatan
Jika Anda belum membuat koneksi ke penyedia Anda, Anda harus membuat GitLab koneksi baru. Untuk petunjuk, lihat Hubungkan CodeBuild ke GitLab.
-
-
Untuk lokasi Runner, pilih Repositori.
-
Untuk Repositori, pilih nama proyek Anda GitLab dengan menentukan jalur proyek dengan namespace.
-
-
Di Lingkungan:
-
Pilih gambar Lingkungan yang didukung dan Compute. Perhatikan bahwa Anda memiliki opsi untuk mengganti pengaturan gambar dan instance dengan menggunakan label di YAML GitLab CI/CD pipeline Anda. Untuk informasi selengkapnya, lihat Langkah 2: Buat file.gitlab-ci.yml di repositori Anda.
-
-
Dalam Buildspec:
-
Perhatikan bahwa buildspec Anda akan diabaikan kecuali
buildspec-override:trueditambahkan sebagai label. Sebagai gantinya, CodeBuild akan mengesampingkannya untuk menggunakan perintah yang akan mengatur pelari yang dikelola sendiri.
-
-
-
Lanjutkan dengan nilai default dan kemudian pilih Buat proyek build.
-
Buka GitLab konsol di
https://gitlab.com/untuk memverifikasi bahwa webhook telah dibuat dan diaktifkan untuk mengirimkan acara pekerjaan Workflow.user-name/repository-name/-/hooks
Langkah 2: Buat file.gitlab-ci.yml di repositori Anda
Pada langkah ini, Anda akan membuat .gitlab-ci.yml file GitLab
Memperbarui YAM GitLab CI/CD L pipeline Anda
Arahkan ke https://gitlab.com/ dan buat user-name/project-name/-/tree/branch-name.gitlab-ci.yml file di repositori Anda. Anda dapat mengonfigurasi lingkungan build dengan melakukan salah satu hal berikut:
-
Anda dapat menentukan nama CodeBuild proyek, dalam hal ini build akan menggunakan konfigurasi proyek yang ada untuk komputasi, gambar, versi gambar, dan ukuran instance. Nama proyek diperlukan untuk menautkan pengaturan AWS terkait GitLab pekerjaan Anda ke CodeBuild proyek tertentu. Dengan menyertakan nama proyek di YAML, CodeBuild diizinkan untuk memanggil pekerjaan dengan pengaturan proyek yang benar.
tags: - codebuild-<codebuild-project-name>-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAMEdiperlukan untuk memetakan build ke proses pekerjaan pipeline tertentu dan menghentikan pembuatan ketika proses pipeline dibatalkan.catatan
Pastikan bahwa Anda
<project-name>cocok dengan nama proyek yang Anda buat CodeBuild. Jika tidak cocok, tidak CodeBuild akan memproses webhook dan GitLab CI/CD pipeline mungkin hang.Berikut ini adalah contoh GitLab CI/CD pipa YAML:
workflow: name: HelloWorld stages: # List of stages for jobs, and their order of execution - build build-job: # This job runs in the build stage, which runs first. stage: build script: - echo "Hello World!" tags: - codebuild-myProject-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME -
Anda juga dapat mengganti gambar dan tipe komputasi di tag. Lihat Hitung gambar yang didukung dengan pelari CodeBuild-hosted GitLab untuk daftar gambar yang dikuratori. Untuk menggunakan gambar khusus, lihatPenggantian label didukung dengan pelari CodeBuild-hosted GitLab. Jenis komputasi dan gambar dalam tag akan menggantikan pengaturan lingkungan pada proyek Anda. Untuk mengganti setelan lingkungan untuk build komputasi Amazon EC2, gunakan sintaks berikut:
tags: - codebuild-<codebuild-project-name>-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - image:<environment-type>-<image-identifier>- instance-size:<instance-size>Berikut ini adalah contoh GitLab CI/CD pipa YAML:
stages: - build build-job: stage: build script: - echo "Hello World!" tags: - codebuild-myProject-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - image:arm-3.0 - instance-size:small -
Anda dapat mengganti armada yang digunakan untuk build Anda di tag. Ini akan mengganti pengaturan armada yang dikonfigurasi pada proyek Anda untuk menggunakan armada yang ditentukan. Untuk informasi selengkapnya, lihat Jalankan build pada armada kapasitas yang dicadangkan. Untuk mengganti setelan armada Anda untuk build komputasi Amazon EC2, gunakan sintaks berikut:
tags: - codebuild-<codebuild-project-name>-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - fleet:<fleet-name>Untuk mengganti armada dan gambar yang digunakan untuk build, gunakan sintaks berikut:
tags: - codebuild-<codebuild-project-name>-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - fleet:<fleet-name>- image:<environment-type>-<image-identifier>Berikut ini adalah contoh GitLab CI/CD pipa YAML:
stages: - build build-job: stage: build script: - echo "Hello World!" tags: - codebuild-myProject-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - fleet:myFleet - image:arm-3.0 -
Untuk menjalankan pekerjaan GitLab CI/CD pipeline Anda pada gambar kustom, Anda dapat mengonfigurasi gambar kustom dalam CodeBuild proyek Anda dan menghindari memberikan label penggantian gambar. CodeBuild akan menggunakan gambar yang dikonfigurasi dalam proyek jika tidak ada label penggantian gambar yang disediakan.
Setelah Anda melakukan perubahan.gitlab-ci.yml, GitLab pipeline akan dipicu dan build-job akan mengirimkan pemberitahuan webhook yang akan memulai build Anda. CodeBuild
Jalankan perintah buildspec dalam fase INSTALL, PRE_BUILD, dan POST_BUILD
Secara default, CodeBuild mengabaikan perintah buildspec apa pun saat menjalankan build yang dikelola sendiri. GitLab Untuk menjalankan perintah buildspec selama build, buildspec-override:true dapat ditambahkan sebagai akhiran ke: tags
tags: - codebuild-<codebuild-project-name>-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - buildspec-override:true
Dengan menggunakan perintah ini, CodeBuild akan membuat folder yang disebut gitlab-runner di folder sumber utama container. Ketika pel GitLab ari memulai selama BUILD fase, pelari akan berjalan di gitlab-runner direktori.
Ada beberapa batasan saat menggunakan penggantian buildspec dalam build yang dikelola sendiri: GitLab
-
CodeBuild tidak akan menjalankan perintah buildspec selama
BUILDfase, karena pelari yang dikelola sendiri berjalan dalam fase tersebut.BUILD -
CodeBuild tidak akan mengunduh sumber primer atau sekunder selama
DOWNLOAD_SOURCEfase tersebut. Jika Anda memiliki file buildspec yang dikonfigurasi, hanya file itu yang akan diunduh dari sumber utama proyek. -
Jika perintah build gagal dalam
INSTALLfasePRE_BUILDatau, tidak CodeBuild akan memulai pelari yang dikelola sendiri dan pekerjaan GitLab CI/CD pipeline perlu dibatalkan secara manual. -
CodeBuild mengambil token pelari selama
DOWNLOAD_SOURCEfase, yang memiliki waktu kedaluwarsa satu jam. JikaINSTALLfasePRE_BUILDatau Anda melebihi satu jam, token pelari dapat kedaluwarsa sebelum pelari yang GitLab dikelola sendiri dimulai.
Langkah 3: Tinjau hasil Anda
Setiap kali GitLab CI/CD proses pipeline terjadi, CodeBuild akan menerima peristiwa pekerjaan CI/CD pipeline melalui webhook. Untuk setiap pekerjaan dalam CI/CD pipeline, CodeBuild mulailah membangun untuk menjalankan pelari sementara. GitLab Pelari bertanggung jawab untuk melaksanakan pekerjaan CI/CD pipa tunggal. Setelah pekerjaan selesai, runner dan proses build terkait akan segera dihentikan.
Untuk melihat log pekerjaan CI/CD pipeline Anda, navigasikan ke repositori Anda di GitLab, pilih Build, Jobs, lalu pilih Pekerjaan tertentu yang ingin Anda tinjau lognya.
Anda dapat meninjau label yang diminta di log saat pekerjaan sedang menunggu untuk diambil oleh pelari yang dikelola sendiri. CodeBuild
Filter acara GitLab webhook (CloudFormation)
Bagian CloudFormation
template berikut YAML-formatted membuat grup filter yang memicu build ketika dievaluasi menjadi true. Grup filter berikut menentukan permintaan pekerjaan GitLab CI/CD pipeline dengan nama CI/CD pipeline yang cocok dengan ekspresi reguler\[CI-CodeBuild\].
CodeBuildProject: Type: AWS::CodeBuild::Project Properties: Name: MyProject ServiceRole: service-role Artifacts: Type: NO_ARTIFACTS Environment: Type: LINUX_CONTAINER ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/standard:5.0 Source: Type: GITLAB Location: CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION Triggers: Webhook: true ScopeConfiguration: Name: group-name Scope: GITLAB_GROUP FilterGroups: - - Type: EVENT Pattern: WORKFLOW_JOB_QUEUED - Type: WORKFLOW_NAME Pattern: \[CI-CodeBuild\]