Mem-build repositori dari GitHub

Cloud Build memungkinkan Anda membuat pemicu untuk membangun dari repositori yang dihosting di GitHub. Anda dapat menjalankan build sebagai respons terhadap peristiwa seperti push commit atau permintaan penggabungan yang terkait dengan repositori GitHub Anda.

Halaman ini menjelaskan cara mengaktifkan pemicu build untuk instance GitHub. Untuk mengetahui informasi selengkapnya, lihat Pemicu Cloud Build dan Repositori Cloud Build.

Sebelum memulai

Ikuti petunjuk untuk terhubung ke host GitHub.
  • Enable the Cloud Build API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

Untuk membuat pemicu untuk repositori GitHub, Anda harus memiliki koneksi antara Google Cloud dan repositori Anda. Untuk membuat koneksi melalui aplikasi GitHub di Google Cloud, lihat Menghubungkan ke repositori GitHub.

Membuat pemicu GitHub

Bagian ini menjelaskan cara membuat pemicu dan menautkannya ke penginstalan GitHub Anda.

Google Cloud console

Untuk membuat pemicu GitHub menggunakan konsol Google Cloud , lakukan hal berikut:

  1. Buka halaman Pemicu di konsol Google Cloud .

    Buka halaman Pemicu

  2. Pilih Google Cloud project Anda, lalu klik Buka.

  3. Klik Create trigger.

  4. Masukkan setelan pemicu berikut:

    • Nama: Masukkan nama untuk pemicu Anda.

    • Region: Pilih region untuk pemicu Anda.

           * If the build config file associated with the trigger specifies a
           [private pool](/build/docs/private-pools/private-pools-overview), then
           Cloud Build uses the private pool to run your build. In this
           case, the region you specify in your trigger must match the region
           where you created your private pool.
           * If the build config file associated with the trigger **doesn't**
           specify a private pool, then Cloud Build uses the default
           pool to run your build in the same region as your trigger.
      

    • Deskripsi (opsional): Masukkan deskripsi untuk pemicu Anda.

    • Peristiwa: Pilih peristiwa repositori untuk memanggil pemicu Anda.

      • Push ke cabang: Tetapkan pemicu untuk memulai build pada commit ke cabang tertentu.

      • Push tag baru: Tetapkan pemicu untuk memulai build pada commit yang berisi tag tertentu.

      • Permintaan pull: Tetapkan pemicu untuk memulai build pada commit ke permintaan pull.

    • Sumber: Konfigurasi informasi tentang repositori GitHub Anda:

      • Layanan repositori: Pilih Cloud Build.

      • Pembuatan repositori: Pilih generasi ke-1 sebagai sumber Anda.

      • Repositori: Dari daftar repositori yang tersedia, pilih repositori.

      • Cabang atau Tag: Tentukan ekspresi reguler dengan cabang atau nilai tag yang akan dicocokkan. Untuk mengetahui informasi mengenai sintaksis regular expression yang dapat diterima, lihat sintaksis RE2.

      • Kontrol komentar: Jika Anda memilih Permintaan pull sebagai Peristiwa, pilih salah satu opsi berikut untuk mengontrol apakah build dieksekusi secara otomatis oleh pemicu:

        • Wajib kecuali untuk pemilik dan kolaborator: Saat permintaan pull dibuat atau diperbarui oleh pemilik atau kolaborator repositori, build akan otomatis dieksekusi oleh pemicu. Jika kontributor eksternal memulai tindakan, build hanya akan dieksekusi setelah pemilik atau kolaborator mengomentari /gcbrun pada pull request.

        • Wajib: Saat permintaan pull dibuat atau diperbarui oleh kontributor mana pun, build hanya dijalankan setelah pemilik atau kolaborator mengomentari /gcbrun permintaan pull. Build dieksekusi setiap kali perubahan dilakukan pada permintaan pull.

        • Tidak diperlukan: Saat permintaan pull dibuat atau diperbarui oleh kontributor mana pun, build akan otomatis dieksekusi oleh pemicu.

    • Konfigurasi: Pilih file konfigurasi build yang ada di repositori jarak jauh Anda atau buat file konfigurasi build inline untuk digunakan dalam build Anda.

      • Type: Pilih jenis konfigurasi yang akan digunakan untuk build Anda.
        • Terdeteksi otomatis: Cloud Build mendeteksi jenis konfigurasi Anda secara otomatis jika Anda memiliki cloudbuild.yaml atau Dockerfile di repositori Anda.
        • File konfigurasi Cloud Build (yaml atau json): Gunakan file konfigurasi build untuk konfigurasi Anda.
        • Dockerfile: Gunakan Dockerfile untuk konfigurasi Anda.
        • Buildpacks: Gunakan buildpacks untuk konfigurasi Anda.
      • Lokasi: Tentukan lokasi untuk konfigurasi Anda.

        • Repositori: Jika file konfigurasi Anda berada di repositori jarak jauh, berikan lokasi file konfigurasi build atau direktori Dockerfile dan nama untuk image yang dihasilkan. Jika konfigurasi Anda adalah Dockerfile, Anda dapat secara opsional memberikan waktu tunggu untuk build Anda. Setelah memberikan Dockerfile dan nama gambar, Anda akan melihat pratinjau perintah docker build yang akan dijalankan build Anda.
        • Inline: Jika Anda memilih File konfigurasi Cloud Build (yaml atau json) sebagai opsi konfigurasi, Anda dapat menentukan konfigurasi build secara inline. Klik Open Editor untuk menulis file konfigurasi build di Google Cloud konsol menggunakan sintaksis YAML atau JSON. Klik Selesai untuk menyimpan konfigurasi build Anda.
    • Variabel penggantian (opsional): Jika Anda memilih file konfigurasi Cloud Build sebagai opsi konfigurasi build, Anda dapat memilih untuk menentukan variabel penggantian khusus pemicu menggunakan kolom ini. Misalnya, Anda membuat beberapa pemicu yang masing-masing pemicunya men-deploy aplikasi ke lingkungan tertentu. Anda dapat menentukan bahwa aplikasi Anda di-deploy ke lingkungan dalam file konfigurasi build, lalu menggunakan kolom ini untuk menentukan variabel penggantian yang menentukan lingkungan tempat pemicu ini harus di-deploy. Untuk mengetahui informasi tentang cara menentukan nilai penggantian dalam file konfigurasi build, lihat Mengganti nilai variabel.

    • Log build (opsional): Centang kotak untuk mengirim log build ke GitHub. Untuk mempelajari cara melihat log build, lihat Melihat log build.

    • Akun layanan: Pilih akun layanan yang akan digunakan saat memanggil pemicu Anda. Jika kebijakan organisasi Anda mengizinkan penggunaan akun layanan Cloud Build lama, Anda dapat mengosongkan kolom ini untuk menggunakan akun layanan lama. Jika tidak, Anda harus memilih akun layanan tertentu yang akan digunakan, meskipun akun tersebut adalah akun layanan default Compute Engine.

  5. Klik Buat untuk menyimpan pemicu build Anda.

Untuk membuat pemicu GitHub menggunakan perintah gcloud, lihat perintah gcloud untuk Membuat pemicu build.

gcloud CLI

Untuk membuat pemicu GitHub menggunakan perintah gcloud, jalankan perintah berikut:

    gcloud alpha builds triggers create developer-connect
      --name=TRIGGER_NAME \
      --git-repository-link=projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/gitRepositoryLinks/REPO_NAME \
      --branch-pattern=BRANCH_PATTERN # or --tag-pattern=TAG_PATTERN \
      --build-config=BUILD_CONFIG_FILE \
      --region=REGION \
      --service-account=SERVICE-ACCOUNT

Dengan:

  • TRIGGER_NAME adalah nama pemicu Anda.
  • PROJECT_ID adalah ID project Google Cloud Anda.
  • REGION adalah region pemicu Anda.
  • CONNECTION_NAME adalah nama koneksi GitHub Anda.
  • GIT_REPOSITORY_LINK adalah link ke repositori Git Anda.
  • BRANCH_PATTERN adalah nama cabang di repositori Anda untuk memanggil build.
  • TAG_PATTERN adalah nama tag di repositori Anda untuk memanggil build.
  • BUILD_CONFIG_FILE adalah jalur ke file konfigurasi build Anda.
  • SERVICE-ACCOUNT adalah akun layanan yang akan digunakan untuk operasi pemicu dan build.

API

Untuk membuat pemicu GitHub dengan API, gunakan template JSON berikut:

  {
      "filename": "cloudbuild.yaml",
      "name": "TRIGGER_NAME",
      "description": "TRIGGER_DESCRIPTION",
      "serviceAccount": "SERVICE_ACCOUNT",
      "github": {
          "owner": "OWNER",
          "name": "REPO_NAME",
          "push": {
              "branch": ".*"
          },
      
      },
      "include_build_logs": include-build-logs-value
  }

Dengan:

  • TRIGGER_NAME adalah nama untuk pemicu.
  • TRIGGER_DESCRIPTION adalah deskripsi untuk pemicu.
  • SERVICE_ACCOUNT adalah akun layanan yang akan digunakan untuk operasi pemicu dan build.
  • OWNER adalah pemilik repositori GitHub.
  • REPO_NAME adalah nama repositori GitHub.
  • include-build-logs-value adalah nilai kolom include_build_logs opsional. Jika kolom ini memiliki nilai INCLUDE_BUILD_LOGS_SPECIFIED, log build akan ditampilkan di repositori Anda.

Masukkan perintah curl berikut di terminal Anda:

curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/triggers -d @trigger.json

Dengan:

  • PROJECT_NUMBER adalah nomor project Google Cloud Anda.
  • PROJECT_ID adalah ID project Google Cloud Anda.

Membangun dan melihat perubahan

Untuk membuat menggunakan pemicu GitHub, Anda harus mengirim dan melakukan commit perubahan ke repositori sumber yang terhubung atau mengonfigurasi build pada permintaan pull. Setelah Anda melakukan check-in perubahan, Cloud Build akan membangun kode Anda.

Untuk melihat perubahan build di GitHub, buka tab Checks di repositori Anda.

Screenshot tab percakapan

Anda akan melihat bahwa Cloud Build telah membuat perubahan Anda. Anda juga akan melihat detail build lainnya seperti waktu yang diperlukan untuk mem-build kode dan ID build.

Untuk melihat perubahan build di Cloud Build, klik View more details on Google Cloud Build. Halaman Build details di konsol Google Cloud akan terbuka dan Anda dapat melihat informasi build seperti status, log, dan langkah-langkah build.

Berbagai jenis pemicu berbasis GitHub

Jika kode sumber Anda ada di GitHub, Cloud Build menyediakan dua cara agar Anda dapat mengeksekusi build secara otomatis. Bagian ini menjelaskan dua pemicu berbasis GitHub dan membandingkan fiturnya.

  • Pemicu lama GitHub: Saat Anda membuat pemicu lama GitHub, Cloud Build akan menduplikasi repositori GitHub Anda di Cloud Source Repositories dan menggunakan repositori yang diduplikasi untuk semua operasinya. Anda dapat membuat dan mengelola pemicu GitHub menggunakan konsol Google Cloud .

  • Pemicu GitHub: Jenis pemicu ini menggunakan aplikasi GitHub Cloud Build untuk mengonfigurasi dan melakukan autentikasi ke GitHub. Pemicu GitHub memungkinkan Anda memulai build secara otomatis pada push Git dan permintaan pull serta melihat hasil build di GitHub dan konsol Google Cloud . Anda dapat membuat dan mengelola pemicu GitHub menggunakan konsol Google Cloud atau Cloud Build API, seperti yang dijelaskan di halaman ini.

  • Pemicu GitHub Enterprise: Jenis pemicu ini memungkinkan Anda memanggil build sebagai respons terhadap commit atau permintaan pull di instance GitHub Enterprise. Anda dapat membangun repositori dari GitHub Enterprise menggunakan Google Cloud konsol atau Cloud Build API.

Tabel berikut membandingkan pemicu lama GitHub, pemicu GitHub, dan pemicu GitHub Enterprise:

Fitur Pemicu lama GitHub Pemicu GitHub Pemicu GitHub Enterprise
Menjalankan build saat melakukan push ke kode sumber Ya Ya Ya
Menjalankan build pada permintaan pull Tidak Ya Ya
Membuat pemicu menggunakan konsol Google Cloud Ya Ya Ya
Membuat pemicu menggunakan Cloud Build API Tidak Ya Ya
Membuat pemicu menggunakan aplikasi GitHub Cloud Build Tidak Ya Ya
Melihat status build di konsol Google Cloud Ya Ya Ya
Melihat status build di GitHub Tidak Ya Ya

Berbagi data

Data yang dikirim ke GitHub dari Cloud Build membantu Anda mengidentifikasi pemicu berdasarkan nama dan melihat hasil build di GitHub.

Data berikut saat ini dibagikan antara Cloud Build dan GitHub:

  • ID project cloud
  • Nama pemicu
  • Log build

Jika Anda membuat pemicu sebelum Agustus 2020, pembagian data mungkin tidak diaktifkan untuk project Anda. Anda dapat mengaktifkan berbagi data untuk semua pemicu GitHub di project Anda dengan mengklik Aktifkan di tab Berbagi data Cloud Build.

Jika Anda telah mengaktifkan pemeriksaan status yang diperlukan untuk repositori GitHub, mengaktifkan berbagi data dapat mengganggu pemeriksaan status untuk sementara. Anda dapat menyesuaikan konfigurasi pemeriksaan status untuk mencari nama pemicu dengan:

  • Menonaktifkan pemeriksaan wajib khusus Cloud Build di repositori GitHub
  • Memastikan bahwa berbagi data diaktifkan di Cloud Build
  • Mengeksekusi build baru di Cloud Build yang memposting status ke repositori Anda
  • Mengaktifkan kembali pemeriksaan status yang diperlukan, memilih nama pemicu

Langkah berikutnya