View a markdown version of this page

Penggantian label didukung dengan pelari Actions CodeBuild-hosted GitHub - AWS CodeBuild

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

Penggantian label didukung dengan pelari Actions CodeBuild-hosted GitHub

Dalam alur kerja GitHub Actions YAMAL, Anda dapat memberikan berbagai penggantian label yang mengubah build runner yang dihosting sendiri. Setiap build yang tidak dikenali oleh CodeBuild akan diabaikan tetapi tidak akan gagal permintaan webhook Anda. Alur kerja berikut YAMAL mendefinisikan dua pekerjaan: job1 menggunakan penggantian untuk image, ukuran instance, armada, dan buildspec, dan hanya menggunakan penggantian gambar. job2 Berikan setiap pekerjaan label unik (job1danjob2) sehingga GitHub merutekan setiap pekerjaan ke pelari yang dibuat untuknya:

name: Hello World on: [push] jobs: job1: runs-on: - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} - image:arm-3.0 - instance-size:small - fleet:myFleet - buildspec-override:true - job1 steps: - run: echo "Hello from Job 1!" job2: runs-on: - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} - image:linux-5.0 - job2 steps: - run: echo "Hello from Job 2!"

Anda juga dapat menggunakan strategi matriks untuk menjalankan satu pekerjaan di beberapa konfigurasi. Perluasan pekerjaan matriks tunggal selalu memiliki jumlah label yang sama, sehingga masalah pencocokan runner tidak mempengaruhinya. Namun, jika alur kerja berisi lebih dari satu tugas matriks, berikan setiap pekerjaan matriks label kustom uniknya sendiri (misalnya, matrix-job-1 danmatrix-job-2) sehingga GitHub tidak cocok dengan pekerjaan dengan pelari yang dibuat untuk pekerjaan matriks yang berbeda:

name: Hello World on: [push] jobs: Hello-World-Job: runs-on: - codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} - image:${{ matrix.os }} - instance-size:${{ matrix.size }} - fleet:myFleet - buildspec-override:true - matrix-job-1 strategy: matrix: include: - os: arm-3.0 size: small - os: linux-5.0 size: large steps: - run: echo "Hello World!"
catatan

Jika pekerjaan alur kerja Anda tergantung GitHub, lihat Memecahkan masalah webhook dan Menggunakan label khusus untuk merutekan pekerjaan.

codebuild-<project-name>-${{github.run_id}}-${{github.run_attempt}}(diperlukan)

  • Contoh: codebuild-fake-project-${{ github.run_id }}-${{ github.run_attempt }}

  • Diperlukan untuk semua alur kerja GitHub Tindakan YAML. <project name>harus sama dengan nama proyek tempat webhook pelari yang dihosting sendiri dikonfigurasi.

image:<environment-type>-<image-identifier>

instance-size:<instance-size>

fleet:<fleet-name>

buildspec-override:<boolean>

  • Contoh: buildspec-override:true

  • Mengizinkan build menjalankan perintah buildspec diINSTALL,PRE_BUILD, dan POST_BUILD fase jika disetel ke. true

<unique-label>(direkomendasikan ketika alur kerja menjalankan memiliki banyak pekerjaan)

  • Contoh: job1

  • Label kustom yang Anda tentukan dan tidak ada pekerjaan lain dalam alur kerja yang sama yang digunakan. Menetapkan setiap pekerjaan label unik memastikan bahwa GitHub merutekan setiap pekerjaan hanya ke pelari yang dibuat untuknya. Tanpa itu, ketika pekerjaan dalam alur kerja yang sama memiliki jumlah penggantian label yang berbeda, pekerjaan dengan label lebih sedikit dapat diambil oleh pelari yang dibuat untuk pekerjaan dengan lebih banyak label, yang membuat pekerjaan kedua tanpa pelari. Untuk informasi selengkapnya, lihat Memecahkan masalah webhook.

Pengesampingan label tunggal

CodeBuild memungkinkan Anda memberikan beberapa penggantian dalam satu label menggunakan yang berikut ini:

catatan

Karena semua penggantian digabungkan menjadi satu label, setiap pelari pekerjaan mendaftar dengan tepat satu label. Ini berarti masalah pencocokan multiple-job runner yang dijelaskan dalam Memecahkan masalah webhook tidak dapat terjadi dengan format ini, bahkan tanpa label unik pada setiap pekerjaan. Gunakan format label tunggal jika Anda lebih suka perilaku ini dan pekerjaan Anda hanya perlu penggantian yang didukungnya. Jangan menggunakannya saat Anda membutuhkan penggantian yang tidak didukungnya. Misalnya, gambar khusus (termasuk gambar dalam registri pribadi) hanya dapat ditentukan dengan menggunakan format image:custom-<environment-type>-<custom-image-identifier> label. Untuk penggantian tersebut, gunakan format label terpisah yang dijelaskan sebelumnya dalam topik ini.

  • Untuk mengganti setelan lingkungan untuk build EC2/Lambda komputasi Amazon, gunakan sintaks berikut:

    runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<environment-type>-<image-identifier>-<instance-size>
  • Untuk mengganti setelan armada untuk build komputasi Amazon EC2, gunakan sintaks berikut:

    runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-fleet-<fleet-name>
  • Untuk mengganti armada dan gambar yang digunakan untuk build, gunakan sintaks berikut:

    runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-image-<image-version>-fleet-<fleet-name>
  • Untuk menjalankan perintah buildspec selama build, -with-buildspec dapat ditambahkan sebagai akhiran label:

    runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<image>-<image-version>-<instance-size>-with-buildspec
  • Secara opsional, Anda dapat memberikan penggantian ukuran instance tanpa mengganti gambar. Untuk build Amazon EC2, Anda dapat mengecualikan jenis lingkungan dan pengenal gambar. Untuk build Lambda, Anda dapat mengecualikan pengenal gambar.