Tutorial: Konfigurasikan CodeBuild pelari GitHub Tindakan yang di-host - AWS CodeBuild

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

Tutorial: Konfigurasikan CodeBuild pelari GitHub Tindakan yang di-host

Tutorial ini menunjukkan cara mengkonfigurasi CodeBuild proyek Anda untuk menjalankan pekerjaan GitHub Actions. Untuk informasi selengkapnya tentang menggunakan GitHub Tindakan dengan CodeBuild lihatGunakan pelari GitHub Tindakan yang dihosting sendiri di AWS CodeBuild.

Untuk menyelesaikan tutorial ini, Anda harus terlebih dahulu:

  • Terhubung dengan token akses pribadi, rahasia Secrets Manager, OAuth aplikasi, atau GitHub Aplikasi. Jika Anda ingin terhubung dengan OAuth aplikasi, Anda harus menggunakan CodeBuild konsol untuk melakukannya. Jika Anda ingin membuat token akses pribadi, Anda dapat menggunakan CodeBuild konsol atau menggunakan ImportSourceCredentials API. Untuk instruksi lebih lanjut, lihatGitHub dan akses Server GitHub Perusahaan di CodeBuild.

  • Connect CodeBuild ke GitHub akun Anda. Untuk melakukannya, Anda dapat melakukan salah satu dari yang berikut:

    catatan

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

Langkah 1: Buat CodeBuild proyek dengan webhook

Pada langkah ini, Anda akan membuat CodeBuild proyek dengan webhook dan meninjaunya di GitHub konsol. Anda juga dapat memilih GitHub Enterprise sebagai penyedia sumber Anda. Untuk mempelajari selengkapnya tentang membuat webhook dalam GitHub Enterprise, lihatGitHub webhook manual.

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 RepositoriURL, masukkan. https://github.com/user-name/repository-name

      catatan

      Secara default, proyek Anda hanya akan menerima WORKFLOW_JOB_QUEUED peristiwa untuk satu repositori. Jika Anda ingin menerima acara untuk semua repositori dalam organisasi atau perusahaan, lihat. GitHub webhook global dan organisasi

    • 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 QUEUED acara WORKFLOW_ JOB _.

        Konfigurasi build agar hanya dipicu oleh peristiwa pekerjaan alur kerja GitHub Actions.
    • 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 YAML Actions. Untuk informasi selengkapnya, silakan lihat Langkah 2: Perbarui alur kerja GitHub Tindakan YAML

    • Di Buildspec:

      • Perhatikan bahwa buildspec Anda akan diabaikan kecuali -with-buildspec akhiran ditambahkan di label Anda. Sebagai gantinya, CodeBuild akan menimpanya untuk menggunakan perintah yang akan mengatur pelari yang dihosting sendiri.

  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 YAML

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

Memperbarui alur kerja GitHub Tindakan YAML

Arahkan ke GitHubdan perbarui runs-onsetelan di alur kerja GitHub Tindakan YAML 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 diYAML, 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 YAML Actions:

    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. Lihat Hitung gambar yang didukung dengan runner CodeBuild Actions -hosted GitHub 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:

    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 YAML Actions:

    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!"
  • Anda dapat mengganti armada yang digunakan untuk build Anda di label. 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:

    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>

    Berikut ini adalah contoh alur kerja GitHub YAML Actions:

    name: Hello World on: [push] jobs: Hello-World-Job: runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}-arm-3.0-fleet-myFleet steps: - run: echo "Hello World!"
  • Secara opsional, Anda dapat memberikan penggantian ukuran instance tanpa mengganti gambar. Untuk EC2 build Amazon, Anda dapat mengecualikan versi gambar dan gambar. Untuk build Lambda, Anda dapat mengecualikan jenis lingkungan dan versi runtime.

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.

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

Secara default, CodeBuild abaikan perintah buildspec apa pun saat menjalankan build Actions yang dihosting sendiri. GitHub 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

Dengan menggunakan perintah ini, CodeBuild akan membuat folder yang disebut actions-runner dalam folder sumber utama wadah. Ketika GitHub Actions runner dimulai selama BUILD fase, runner akan berjalan di direktori. actions-runner

Ada beberapa batasan saat menggunakan penggantian buildspec dalam build Tindakan yang dihosting sendiri: GitHub

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

  • CodeBuild tidak akan mengunduh sumber primer atau sekunder apa pun selama DOWNLOAD_SOURCE fase berlangsung. 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 dihosting sendiri dan pekerjaan alur kerja GitHub Actions harus 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 runner yang GitHub di-host sendiri dimulai.

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

Memuat log pekerjaan.

Setelah pekerjaan selesai, Anda akan dapat melihat log pekerjaan.

Log pekerjaan.