Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Tutorial: Konfigurasikan pelari yang CodeBuild di-host GitLab

Mode fokus
Tutorial: Konfigurasikan pelari yang CodeBuild di-host GitLab - AWS CodeBuild

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

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

Tutorial ini menunjukkan cara mengkonfigurasi CodeBuild proyek Anda untuk menjalankan pekerjaan pipa GitLab CI/CD. Untuk informasi selengkapnya tentang menggunakan GitLab atau Dikelola GitLab Sendiri dengan CodeBuild, lihat GitLab Pelari yang dikelola sendiri di AWS CodeBuild.

Untuk menyelesaikan tutorial ini, Anda harus terlebih dahulu:

  • Connect dengan OAuth aplikasi dengan menggunakan CodeConnections. Perhatikan bahwa saat menghubungkan dengan OAuth aplikasi, Anda harus menggunakan CodeBuild konsol untuk melakukannya. Untuk instruksi lebih lanjut, lihatGitLab akses di CodeBuild.

  • Connect CodeBuild ke GitLab akun Anda. Untuk melakukannya, Anda dapat menambahkan GitLab sebagai penyedia sumber di konsol. Untuk petunjuk, silakan lihat GitLab akses di CodeBuild.

    catatan

    Ini hanya perlu dilakukan jika Anda belum terhubung ke GitLab akun Anda.

    Dengan fitur ini, CodeBuild perlu izin tambahan. seperti create_runner dan manage_runner dari 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. Dengan 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
  1. Buka AWS CodeBuild konsol di https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Buat proyek build. Untuk informasi selengkapnya, lihat Buat proyek build (konsol) dan Menjalankan build (konsol).

    • Dalam Sumber:

      • Untuk penyedia Sumber, pilih GitLab.

      • Untuk Credential, pilih salah satu dari berikut ini:

        • Pilih Default source credential. Koneksi default menerapkan GitLab koneksi default di semua proyek.

        • Pilih Kredensi sumber kustom. Koneksi kustom menerapkan GitLab koneksi kustom yang mengesampingkan pengaturan default akun Anda.

        catatan

        Jika Anda belum membuat koneksi ke penyedia Anda, Anda harus membuat GitLab koneksi baru. Untuk petunjuk, silakan lihat Connect CodeBuild ke GitLab.

      • Untuk Repositori, pilih nama proyek Anda GitLab dengan menentukan jalur proyek dengan namespace.

    • Dalam acara webhook sumber utama:

      • Untuk Webhook - opsional, pilih Rebuild setiap kali perubahan kode didorong ke repositori ini.

      • Untuk jenis Acara, pilih WORKFLOW_ JOB _ QUEUED. Setelah ini diaktifkan, build hanya akan dipicu oleh peristiwa pekerjaan pipeline GitLab CI/CD.

        catatan

        CodeBuild hanya akan memproses acara pekerjaan pipa GitLab CI/CD jika webhook memiliki grup filter yang berisi filter acara WORKFLOW_ JOB _ QUEUED.

        Konfigurasi build agar hanya dipicu oleh peristiwa pekerjaan pipeline GitLab CI/CD.
    • Di Lingkungan:

      • Pilih gambar Lingkungan yang didukung dan Compute. Perhatikan bahwa Anda memiliki opsi untuk mengganti pengaturan gambar dan instance dengan menggunakan label di pipeline GitLab CI/CD Anda. YAML Untuk informasi selengkapnya, lihat Langkah 2: Buat file.gitlab-ci.yl di repositori Anda.

    • Di Buildspec:

      • Perhatikan bahwa buildspec Anda akan diabaikan kecuali buildspec-override:true ditambahkan sebagai label. Sebagai gantinya, CodeBuild akan menimpanya untuk menggunakan perintah yang akan mengatur pelari yang dikelola sendiri.

  3. Lanjutkan dengan nilai default dan kemudian pilih Create build project.

  4. Buka GitLab konsol di https://gitlab.com/user-name/repository-name/-/hooks untuk memverifikasi bahwa webhook telah dibuat dan diaktifkan untuk mengirimkan peristiwa pekerjaan Alur Kerja.

Langkah 2: Buat file.gitlab-ci.yl di repositori Anda

Pada langkah ini, Anda akan membuat .gitlab-ci.yml file GitLabuntuk mengonfigurasi lingkungan build Anda dan menggunakan pelari yang GitLab dikelola sendiri. CodeBuild Untuk informasi selengkapnya, lihat Menggunakan pelari yang dikelola sendiri.

Perbarui saluran GitLab CI/CD Anda YAML

Arahkan ke https://gitlab.com/user-name/project-name/-/tree/branch-name dan buat .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 memasukkan nama proyek diYAML, 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 pekerjaan pipeline tertentu yang berjalan dan menghentikan pembangunan saat 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 pipeline GitLab CI/CD mungkin hang.

    Berikut ini adalah contoh dari pipa GitLab CI/CD: 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 jenis komputasi di tag. Lihat Hitung gambar yang didukung dengan pelari yang CodeBuild di-host GitLab daftar gambar yang tersedia. Jenis komputasi dan gambar dalam label akan mengganti pengaturan lingkungan pada proyek Anda. Untuk mengganti setelan lingkungan untuk build EC2 komputasi Amazon, 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 dari pipa GitLab CI/CD: 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 menggantikan pengaturan armada yang dikonfigurasi pada proyek Anda untuk menggunakan armada yang ditentukan. Untuk informasi selengkapnya, lihat Jalankan build di atas armada kapasitas cadangan. Untuk mengganti setelan armada untuk build EC2 komputasi Amazon, 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 dari pipa GitLab CI/CD: 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 tugas pipeline GitLab CI/CD 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 mengirim notifikasi webhook yang akan memulai build in CodeBuild Anda.

Jalankan perintah buildspec faseINSTALL, PRE _BUILD, dan _ POST BUILD

Secara default, CodeBuild abaikan perintah buildspec apa pun saat menjalankan build yang dikelola sendiri. GitLab Untuk menjalankan perintah buildspec selama build, buildspec-override:true dapat ditambahkan sebagai akhiran untuk: 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 dalam folder sumber utama wadah. Ketika GitLab pelari dimulai selama BUILD fase, pelari akan berjalan di direktori. gitlab-runner

Ada beberapa batasan saat menggunakan penggantian buildspec dalam build yang dikelola sendiri: GitLab

  • CodeBuild tidak akan menjalankan perintah buildspec selama BUILD fase, karena pelari yang dikelola sendiri berjalan dalam fase tersebut. BUILD

  • CodeBuild tidak akan mengunduh sumber primer atau sekunder selama DOWNLOAD_SOURCE fase. Jika Anda memiliki file buildspec yang dikonfigurasi, hanya file itu yang akan diunduh dari sumber utama proyek.

  • Jika perintah build gagal di INSTALL fase PRE_BUILD atau, tidak CodeBuild akan memulai runner yang dikelola sendiri dan pekerjaan pipeline GitLab CI/CD perlu dibatalkan secara manual.

  • CodeBuild mengambil token runner selama DOWNLOAD_SOURCE fase, yang memiliki waktu kedaluwarsa satu jam. Jika INSTALL fase PRE_BUILD atau fase Anda melebihi satu jam, token runner mungkin kedaluwarsa sebelum pelari yang GitLab dikelola sendiri dimulai.

Langkah 3: Tinjau hasil Anda

Setiap kali pekerjaan GitLab CI/CD pipeline run occurs, CodeBuild would receive the CI/CD pipeline job events through the webhook. For each job in the CI/CD pipeline, CodeBuild starts a build to run an ephemeral GitLab runner. The runner is responsible for executing a single CI/CD pipa. Setelah pekerjaan selesai, runner dan proses build terkait akan segera dihentikan.

Untuk melihat log pekerjaan pipeline CI/CD, navigasikan ke repositori GitLab, pilih Build, Jobs, lalu pilih Job spesifik yang ingin Anda tinjau log.

Anda dapat meninjau label yang diminta di log saat pekerjaan menunggu untuk diambil oleh pelari yang dikelola sendiri. CodeBuild

Filter acara GitLab webhook ()AWS CloudFormation

Bagian AWS CloudFormation templat YAML yang diformat berikut akan membuat grup filter yang memicu build saat dievaluasi ke true. Grup filter berikut menentukan nama GitLab CI/CD pipeline job request with a CI/CD pipeline yang cocok dengan ekspresi \[CI-CodeBuild\] reguler.

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 FilterGroups: - - Type: EVENT Pattern: WORKFLOW_JOB_QUEUED - Type: WORKFLOW_NAME Pattern: \[CI-CodeBuild\]
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.