Siapkan pelari GitHub Tindakan yang dihosting sendiri di AWS CodeBuild - AWS CodeBuild

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

Siapkan pelari GitHub Tindakan yang dihosting sendiri di AWS CodeBuild

Anda dapat mengonfigurasi project untuk menyiapkan runner GitHub Actions yang dihosting sendiri dalam CodeBuild container untuk memproses pekerjaan alur kerja GitHub Actions. Ini dapat dilakukan dengan menyiapkan webhook menggunakan CodeBuild project Anda, dan memperbarui alur kerja GitHub Actions YAMM untuk menggunakan runner yang dihosting sendiri yang dihosting di mesin. CodeBuild Untuk informasi selengkapnya, lihat Tentang pelari yang dihosting sendiri.

Langkah-langkah tingkat tinggi untuk mengonfigurasi CodeBuild proyek untuk menjalankan pekerjaan GitHub Actions adalah sebagai berikut:

  1. Jika Anda belum melakukannya, buat token akses pribadi atau sambungkan dengan aplikasi OAuth untuk menghubungkan proyek Anda. GitHub

  2. Arahkan ke CodeBuild konsol dan buat CodeBuild proyek dengan webhook dan atur filter webhook Anda.

  3. Perbarui alur kerja GitHub Actions YAMM GitHub untuk mengonfigurasi lingkungan build Anda.

Untuk prosedur yang lebih rinci, lihatTutorial: Konfigurasikan CodeBuild pelari GitHub Tindakan yang dihosting sendiri.

Fitur ini memungkinkan pekerjaan alur kerja GitHub Actions Anda untuk mendapatkan integrasi asli AWS, yang memberikan keamanan dan kenyamanan melalui fitur seperti IAM, AWS Secrets Manager integrasi AWS CloudTrail, dan Amazon VPC. Anda dapat mengakses jenis instans terbaru, termasuk instance berbasis ARM.

Tutorial: Konfigurasikan CodeBuild pelari GitHub Tindakan yang dihosting sendiri

Tutorial ini menunjukkan cara mengkonfigurasi CodeBuild proyek Anda untuk menjalankan pekerjaan GitHub Actions.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda harus terlebih dahulu:

Langkah 1: Buat CodeBuild proyek dengan webhook

Pada langkah ini, Anda akan membuat CodeBuild proyek dengan webhook dan meninjaunya di GitHub 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 GitHub.

      • Untuk Repositori, pilih Repositori di akun saya. GitHub

      • Untuk URL Repositori, masukkan. https://github.com/user-name/repository-name

    • 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 alur kerja GitHub Actions.

        catatan

        CodeBuild hanya akan memproses peristiwa pekerjaan alur kerja GitHub Tindakan jika webhook memiliki grup filter yang berisi filter peristiwa WORKFLOW_JOB_QUEUED.

    • Di Lingkungan:

      • Pilih gambar Lingkungan yang didukung dan Compute. Perhatikan bahwa Anda memiliki opsi untuk mengganti setelan gambar dan instans dengan menggunakan label di alur kerja GitHub Actions YAMM. Untuk informasi selengkapnya, lihat Langkah 2: Perbarui alur kerja GitHub Tindakan Anda YAMAL

    • Di Buildspec:

      • Perhatikan bahwa Buildspec Anda akan diabaikan. Sebagai gantinya, CodeBuild akan menimpanya untuk menggunakan perintah yang akan mengatur pelari yang dihosting sendiri. Tanggung jawab utama proyek ini adalah menyiapkan runner yang di-host sendiri CodeBuild untuk menjalankan pekerjaan alur kerja GitHub Actions.

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

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

Langkah 2: Perbarui alur kerja GitHub Tindakan Anda YAMAL

Pada langkah ini, Anda akan memperbarui file YAMAL alur kerja GitHub Actions GitHubuntuk mengonfigurasi lingkungan build dan menggunakan runner yang dihosting sendiri GitHub Actions di. CodeBuild Untuk informasi selengkapnya, lihat Menggunakan label dengan pelari yang dihosting sendiri.

Memperbarui alur kerja GitHub Actions YAMAL

Arahkan ke GitHubdan perbarui runs-onsetelan di alur kerja GitHub Tindakan YAMM untuk mengonfigurasi lingkungan build Anda. Untuk melakukannya, Anda dapat melakukan salah satu dari yang berikut:

  • Anda dapat menentukan nama proyek dan menjalankan ID, 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 pekerjaan GitHub Tindakan Anda ke CodeBuild proyek tertentu. Dengan memasukkan nama proyek di YAMAL, CodeBuild diizinkan untuk memanggil pekerjaan dengan pengaturan proyek yang benar. Dengan memberikan ID run, CodeBuild akan memetakan build Anda ke alur kerja tertentu yang berjalan dan menghentikan build saat alur kerja dijalankan dibatalkan. Untuk informasi lebih lanjut, lihat githubkonteks.

    runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}
    catatan

    Pastikan bahwa Anda <project-name>cocok dengan nama proyek yang Anda buat pada langkah sebelumnya. Jika tidak cocok, tidak CodeBuild akan memproses webhook dan alur kerja GitHub Actions mungkin hang.

    Berikut ini adalah contoh alur kerja GitHub Actions YAMAL:

    name: Hello World on: [push] jobs: Hello-World-Job: runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} steps: - run: echo "Hello World!"
  • Anda juga dapat mengganti gambar dan jenis komputasi di label. Ini akan mengesampingkan pengaturan lingkungan pada proyek Anda. Untuk mengganti setelan lingkungan untuk build komputasi Amazon EC2, gunakan sintaks berikut:

    runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<image>-<image-version>-<instance-size>

    Untuk mengganti setelan lingkungan untuk build komputasi Lambda, gunakan sintaks berikut:

    runs-on: codebuild-<project-name>-${{ github.run_id }}-${{ github.run_attempt }}-<environment-type>-<runtime-version>-<instance-size>

    Berikut ini adalah contoh alur kerja GitHub Actions YAMAL:

    name: Hello World on: [push] jobs: Hello-World-Job: runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}-arm-3.0-small steps: - run: echo "Hello World!"
catatan

Jika dependensi yang disediakan oleh pelari GitHub -host tidak tersedia di CodeBuild lingkungan, Anda dapat menginstal dependensi menggunakan GitHub Tindakan dalam alur kerja Anda. Misalnya, Anda dapat menggunakan setup-pythontindakan untuk menginstal Python untuk lingkungan build Anda.

Gambar komputasi yang didukung

Di label, Anda dapat mengganti pengaturan lingkungan Amazon EC2 dengan menggunakan nilai di tiga kolom pertama. CodeBuild menyediakan gambar komputasi Amazon EC2 berikut:

Citra Versi gambar Ukuran instans Platform Pengidentifikasi gambar Definisi

linux

4.0

small

medium

large

xlarge

2xlarge

gpu_small

gpu_large

Amazon Linux 2 aws/codebuild/amazonlinux2-x86_64-standard:4.0 al2/standar/4.0

linux

5.0

Amazon Linux 2023 aws/codebuild/amazonlinux2-x86_64-standard:5.0 al2/standar/5.0

arm

2.0

small

large

Amazon Linux 2 aws/codebuild/amazonlinux2-aarch64-standard:2.0 al2/aarch64/standar/2.0

arm

3.0

Amazon Linux 2023 aws/codebuild/amazonlinux2-aarch64-standard:3.0 al2/aarch64/standar/3.0

ubuntu

5.0

small

medium

large

xlarge

2xlarge

gpu_small

gpu_large

Ubuntu 20.04 aws/codebuild/standard:5.0 ubuntu/standar/5.0

ubuntu

6.0

Ubuntu 22.04 aws/codebuild/standard:6.0 ubuntu/standar/6.0

ubuntu

7.0

Ubuntu 22.04 aws/codebuild/standard:7.0 ubuntu/standar/7.0

windows

1.0

medium

large

Inti Server Windows 2019 aws/codebuild/windows-base:2019-1.0 N/A

windows

2.0

Inti Server Windows 2019 aws/codebuild/windows-base:2019-2.0 N/A

windows

3.0

Inti Server Windows 2019 aws/codebuild/windows-base:2019-3.0 N/A

Selain itu, Anda dapat mengganti pengaturan lingkungan Lambda Anda dengan menggunakan nilai berikut. Untuk informasi selengkapnya tentang komputasi CodeBuild Lambda, lihat Bekerja dengan. Bekerja dengan AWS Lambda komputasi di AWS CodeBuild CodeBuild mendukung gambar komputasi Lambda berikut:

Tipe lingkungan Versi waktu aktif Ukuran instans

linux-lambda

dotnet6

go1.21

corretto11

corretto17

corretto21

nodejs18

nodejs20

python3.11

python3.12

ruby3.2

1GB

2GB

4GB

8GB

10GB

arm-lambda

Untuk informasi selengkapnya, lihat Bangun mode dan tipe komputasi lingkungan dan Gambar Docker disediakan oleh CodeBuild.

Langkah 3: Tinjau hasil Anda

Setiap kali alur kerja GitHub Tindakan dijalankan, CodeBuild akan menerima peristiwa pekerjaan alur kerja melalui webhook. Untuk setiap pekerjaan dalam alur kerja, CodeBuild mulai build untuk menjalankan runner Actions sesaat. GitHub Pelari bertanggung jawab untuk mengeksekusi satu pekerjaan alur kerja. Setelah pekerjaan selesai, runner dan proses build terkait akan segera dihentikan.

Untuk melihat log pekerjaan alur kerja, navigasikan ke repositori GitHub, pilih Tindakan, pilih alur kerja yang diinginkan, 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 di-host sendiri. CodeBuild

Setelah pekerjaan selesai, Anda akan dapat melihat log pekerjaan.

Tentang CodeBuild pelari GitHub Tindakan yang di-host

Kapan saya harus menyertakan penggantian gambar dan instance di label?

Anda dapat menyertakan penggantian gambar dan instance dalam label untuk menentukan lingkungan build yang berbeda untuk setiap pekerjaan alur kerja GitHub Actions Anda. Ini dapat dilakukan tanpa perlu membuat beberapa CodeBuild proyek atau webhook. Misalnya, ini berguna ketika Anda perlu menggunakan matriks untuk pekerjaan alur kerja Anda.

name: Hello World on: [push] jobs: Hello-World-Job: runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.os }} strategy: matrix: os: [arm-3.0-small, al2-5.0-large] steps: - run: echo "Hello World!"
catatan

Tanda kutip mungkin diperlukan jika runs-on memiliki beberapa label yang berisi konteks GitHub Tindakan.

Dapatkah saya menggunakan AWS CloudFormation untuk fitur ini?

Ya, Anda dapat menyertakan grup filter dalam AWS CloudFormation template Anda yang menentukan filter peristiwa pekerjaan alur kerja GitHub Actions di webhook proyek Anda.

Triggers: Webhook: true FilterGroups: - - Type: EVENT Pattern: WORKFLOW_JOB_QUEUED

Untuk informasi selengkapnya, lihat Filter acara GitHub webhook ()AWS CloudFormation.

Jika Anda memerlukan bantuan untuk menyiapkan kredensil proyek di AWS CloudFormation templat Anda, lihat AWS::CodeBuild::SourceCredentialdi Panduan AWS CloudFormation Pengguna untuk informasi selengkapnya.

Wilayah mana yang mendukung penggunaan pelari GitHub Tindakan yang CodeBuild di-host?

CodeBuild-Hosted GitHub Actions runner didukung di semua CodeBuild wilayah. Untuk informasi selengkapnya tentang Wilayah AWS tempat CodeBuild tersedia, lihat AWS Layanan menurut Wilayah.

Platform mana yang mendukung penggunaan pelari GitHub Tindakan yang CodeBuild di-host?

CodeBuild-Hosted GitHub Actions runner didukung di Amazon AWS LambdaEC2 dan komputasi. Anda dapat menggunakan platform berikut: Amazon Linux 2, Amazon Linux 2023, Ubuntu, dan Windows Server Core 2019. Untuk informasi selengkapnya, lihat Gambar komputasi EC2 dan Lambda menghitung gambar.

Pemecahan masalah: Bagaimana cara memecahkan masalah jika webhook tidak berfungsi?

Masalah: Webhook Anda tidak berfungsi atau pekerjaan alur kerja Anda terus berlanjut. GitHub

Kemungkinan penyebabnya: Peristiwa lowongan kerja alur kerja webhook Anda mungkin gagal memicu build. Tinjau log Respons untuk melihat respons atau pesan kesalahan.

Solusi yang disarankan: Untuk men-debug kesalahan ini, gunakan instruksi berikut.

  1. Buka GitHub konsol di https://github.com/user-name/repository-name/settings/hooks untuk melihat pengaturan webhook repositori Anda. Di halaman ini, Anda akan melihat webhook yang dibuat untuk repositori Anda.

  2. Pilih Edit dan konfirmasikan bahwa webhook diaktifkan untuk mengirimkan peristiwa pekerjaan Workflow.

  3. Arahkan ke tab Pengiriman Terbaru, temukan workflow_job.queued acara yang sesuai, dan perluas acara.

  4. Tinjau bidang label di Payload dan pastikan itu seperti yang diharapkan.

  5. Terakhir, tinjau tab Respons, karena ini berisi respons atau pesan kesalahan yang dikembalikan CodeBuild.