Membuat dan mengelola pemicu build

Pemicu Cloud Build otomatis memulai build setiap kali Anda membuat perubahan apa pun pada kode sumber. Anda dapat mengonfigurasi pemicu untuk mem-build kode Anda berdasarkan setiap perubahan pada repositori sumber atau hanya pada perubahan yang cocok dengan kriteria tertentu.

Halaman ini menjelaskan cara terhubung ke repositori sumber seperti GitHub dan Bitbucket, serta membuat pemicu build untuk mem-build kode di repositori.

Sebelum memulai

Untuk mendapatkan izin yang diperlukan guna membuat dan mengelola pemicu build, minta administrator untuk memberi Anda peran IAM Cloud Build Editor (roles/cloudbuild.builds.editor) di project Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Selain itu, lakukan hal berikut:

  • Enable the Cloud Build API.

    Enable the API

  • Pastikan Anda memiliki kode sumber di Cloud Source Repositories, GitHub, atau Bitbucket.
  • Pastikan Anda memiliki Dockerfile atau file konfigurasi Cloud Build.

Menghubungkan ke repositori sumber

Anda harus menghubungkan Cloud Build ke repositori sumber terlebih dahulu sebelum membangun kode di repositori tersebut. Repositori Anda di Cloud Source Repositories terhubung ke Cloud Build secara default. Anda dapat langsung membuat pemicu untuk repositori di Cloud Source Repositories tanpa perlu menghubungkannya secara manual.

Jika Anda menghubungkan repositori eksternal, seperti yang dihosting di GitHub atau Bitbucket, Anda memerlukan izin tingkat admin pada repositori untuk menghubungkan repositori Anda ke Cloud Build pada awalnya. Izin admin tidak diperlukan untuk membuat pemicu di repositori yang sudah terhubung ke Cloud Build.

Selesaikan langkah-langkah berikut untuk terhubung ke GitHub atau Bitbucket:

  1. Buka halaman Pemicu di konsol Google Cloud .

    Buka halaman pemicu

  2. Di toolbar konsol Google Cloud , pilih project Google Cloud Anda.

  3. Klik Connect Repository.

  4. Pilih region tempat Anda ingin membuat pemicu dari menu drop-down Region.

  5. Pilih repositori tempat Anda menyimpan kode sumber.

    Jika Anda memilih GitHub (diduplikasi) atau Bitbucket (diduplikasi) sebagai repositori sumber, Cloud Build akan menduplikasi repositori Anda di Cloud Source Repositories dan menggunakan repositori yang diduplikasi untuk semua operasinya.

  6. Klik Lanjutkan.

  7. Lakukan autentikasi ke repositori sumber Anda dengan nama pengguna dan sandi Anda.

  8. Dari daftar repositori yang tersedia, pilih repositori, lalu klik Hubungkan.

    Untuk repositori eksternal, seperti GitHub dan Bitbucket, Anda harus memiliki izin tingkat pemilik untuk project yang sedang Anda kerjakan. Google Cloud

  9. Klik Buat pemicu untuk melanjutkan pembuatan pemicu build guna mengotomatiskan build untuk kode sumber di repositori, atau klik Selesai.

Membuat pemicu build

Konsol

  1. Buka halaman Pemicu di konsol Google Cloud .

    Buka halaman Pemicu

  2. Di toolbar konsol Google Cloud , pilih project Google Cloud Anda.

  3. Klik Create trigger.

  4. Masukkan setelan pemicu berikut:

    • Nama: Masukkan nama untuk pemicu Anda.

    • Region: Pilih region untuk pemicu Anda.

      Jika file konfigurasi build yang terkait dengan pemicu Anda menentukan private pool, region yang Anda pilih untuk pemicu harus cocok dengan region private pool.

      Jika Anda memilih global sebagai region, Cloud Build akan menggunakan region yang ditentukan dalam file konfigurasi build untuk menjalankan build Anda. Ini bisa berupa region private pool, jika Anda menentukan private pool dalam file konfigurasi build, atau pool default global jika Anda tidak menentukan private pool.

    • 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: Pilih generasi ke-1 atau generasi ke-2 sebagai sumber Anda. Anda hanya dapat menghubungkan repositori dari GitHub dan GitHub Enterprise saat memilih generasi ke-2 sebagai sumber. Untuk mempelajari lebih lanjut, lihat repositori Cloud Build.

      • Cabang atau Tag: Tentukan ekspresi reguler dengan cabang atau nilai tag yang akan dicocokkan. Garis miring (/) tidak dapat digunakan dalam tag. Untuk mengetahui informasi selengkapnya tentang sintaksis ekspresi reguler yang dapat diterima, lihat sintaksis RE2.

        Saat build Anda dieksekusi, Cloud Build akan menyalin konten repositori Anda ke /workspace, direktori kerja default untuk Cloud Build. Pelajari lebih lanjut direktori kerja di halaman ringkasan Konfigurasi build.

        Untuk hanya mengizinkan build dari sumber tertentu, tetapkan kebijakan organisasi untuk integrasi yang diizinkan (constraints/cloudbuild.allowedIntegrations) guna menolak interaksi dengan sumber yang ditentukan di pemicu Anda. Kebijakan organisasi menggantikan pemicu dan build Anda tidak dieksekusi. Untuk mempelajari lebih lanjut, lihat Membatasi build berdasarkan kebijakan organisasi untuk project Anda.

    • File yang disertakan (opsional): Perubahan yang memengaruhi setidaknya salah satu file ini akan memanggil build. Anda dapat menggunakan string glob untuk menentukan beberapa file dengan karakter pengganti. Karakter pengganti yang dapat diterima mencakup karakter yang didukung oleh Go Match, **, dan alternasi.

    • File yang diabaikan (opsional): Perubahan yang hanya memengaruhi file yang diabaikan tidak akan memicu build. Anda dapat menggunakan string glob untuk menentukan beberapa file dengan karakter pengganti. Karakter pengganti yang dapat diterima mencakup karakter yang didukung oleh Go Match, **, dan alternasi.

      Jika Anda menentukan file di File yang disertakan dan File yang diabaikan, perubahan pada file tersebut tidak akan memicu build. Misalnya, Anda menentukan **/README.md di File yang diabaikan untuk mengabaikan README.md di direktori mana pun, dan menentukan src/* di File yang disertakan untuk memulai build pada perubahan pada file apa pun di folder src/. Sekarang, jika Anda membuat perubahan pada src/README.md, Cloud Build tidak akan memulai build. Setiap kali Anda mengirim perubahan ke sumber, Cloud Build akan memeriksa file yang diubah untuk menentukan apakah build harus dipanggil:

      • Jika Anda mengirim perubahan ke repositori di cabang yang ada, Cloud Build akan melihat file yang diubah antara commit yang baru saja Anda kirim dan commit yang sebelumnya ditunjuk oleh cabang.
      • Jika repositori Anda adalah Cloud Source Repositories dan Anda mengirim perubahan ke cabang yang baru dibuat, Cloud Build akan memperlakukan semua file di repositori sebagai file yang diubah.
      • Jika Anda menghapus cabang, Cloud Build tidak akan memulai build.
    • 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.
        • 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, direktori Dockerfile, atau direktori buildpack. Jika jenis konfigurasi build Anda adalah Dockerfile atau buildpack, Anda harus memberikan nama untuk image yang dihasilkan dan secara opsional, waktu tunggu untuk build Anda. Setelah memberikan nama image Dockerfile atau buildpack, Anda akan melihat pratinjau perintah docker build atau pack yang akan dijalankan build Anda.
        • Variabel lingkungan buildpack (opsional): Jika Anda memilih buildpacks sebagai jenis konfigurasi, klik Tambahkan variabel lingkungan paket untuk menentukan variabel lingkungan dan nilai buildpack. Untuk mempelajari lebih lanjut variabel lingkungan buildpack, lihat Variabel lingkungan.
        • 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.

    • Gunakan kumpulan pribadi: Kolom ini muncul jika Anda memilih Dockerfile sebagai opsi Konfigurasi. Centang kotak ini jika Anda menjalankan build di kumpulan pribadi.

    • Private pool: Jika Anda memilih Gunakan private pool, tentukan nama resource private pool dalam bentuk projects/WORKERPOOL_PROJECT_ID/locations/REGION/workerPools/WORKERPOOL_ID.

    • 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.

    • Persetujuan (opsional): Centang kotak untuk mewajibkan persetujuan sebelum build Anda dieksekusi.

    • Akun layanan: Pilih akun layanan yang akan digunakan saat memanggil pemicu Anda. Hanya akun layanan yang ditentukan pada pemicu Anda yang akan digunakan untuk build yang dijalankan oleh pemicu. Jika Anda menentukan akun layanan dalam konfigurasi build, akun tersebut akan diabaikan selama eksekusi build saat menggunakan pemicu.

  5. Klik Buat untuk menyimpan pemicu build Anda.

gcloud

Untuk membuat pemicu jika kode sumber Anda ada di Cloud Source Repositories:

    gcloud builds triggers create cloud-source-repositories \
    --repo=REPO_NAME \
    --branch-pattern=BRANCH_PATTERN \ # or --tag-pattern=TAG_PATTERN
    --build-config=BUILD_CONFIG_FILE \
    --service-account=SERVICE_ACCOUNT \
    --require-approval

Dengan:

  • REPO_NAME adalah nama repositori 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.
  • Opsional: Untuk mengonfigurasi pemicu agar memerlukan persetujuan, tetapkan tanda --require-approval.

Untuk mengetahui daftar lengkap flag, lihat referensi gcloud tentang cara membuat pemicu untuk Cloud Source Repositories.

Untuk membuat pemicu jika kode sumber Anda ada di GitHub:

    gcloud builds triggers create github \
    --name=TRIGGER_NAME \
    --region=REGION \
    --repo-name=REPO_NAME \
    --repo-owner=REPO_OWNER \
    --branch-pattern=BRANCH_PATTERN \ # or --tag-pattern=TAG_PATTERN
    --build-config=BUILD_CONFIG_FILE \
    --service-account=SERVICE_ACCOUNT \
    --require-approval
    --include-logs-with-status

Dengan:

  • REGION adalah region untuk pemicu Anda.
  • REPO_NAME adalah nama repositori Anda.
  • REPO_OWNER adalah nama pengguna pemilik repositori.
  • 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.
  • Opsional: --require-approval adalah tanda yang disertakan untuk mengonfigurasi pemicu agar memerlukan persetujuan.
  • Opsional: --include-logs-with-status adalah tanda yang dapat Anda tentukan untuk menampilkan log build untuk repositori Anda. Flag ini didukung untuk build dari repositori GitHub dan GitHub Enterprise.

Untuk mengetahui daftar lengkap flag, lihat referensi gcloud tentang cara membuat pemicu untuk GitHub.

Setelah menjalankan perintah gcloud untuk membuat pemicu menggunakan Cloud Source Repositories atau GitHub, Anda akan melihat output yang mirip dengan berikut:

  NAME         CREATE_TIME                STATUS
  trigger-001  2019-10-30T20:45:03+00:00

Menguji pemicu build

Untuk menguji pemicu build secara manual:

  1. Buka halaman Pemicu di konsol Google Cloud .

    Buka halaman pemicu

  2. Di toolbar konsol Google Cloud , pilih project Google Cloud Anda.

  3. Temukan pemicu Anda dalam daftar, lalu klik Run.

Melewati pemicu build

Dalam beberapa kasus, Anda mungkin ingin melakukan perubahan pada kode sumber, tetapi Anda tidak ingin memanggil build. Misalnya, Anda mungkin tidak ingin memanggil build saat memperbarui dokumentasi atau file konfigurasi.

Dalam skenario tersebut, Anda dapat menyertakan [skip ci] atau [ci skip] dalam pesan commit, dan build tidak akan dipanggil.

Jika Anda ingin menjalankan build pada commit tersebut nanti, gunakan tombol Run di halaman Triggers.

Menyertakan histori repositori dalam build

Untuk membangun sumber di repositori Git, Cloud Build melakukan clone dangkal repositori. Artinya, hanya satu commit yang memulai build yang di-checkout di ruang kerja untuk dibangun. Cloud Build tidak mengambil cabang atau histori lainnya. Hal ini dilakukan untuk efisiensi, sehingga build tidak perlu menunggu untuk mengambil seluruh repositori dan histori hanya untuk membuat satu commit.

Jika Anda ingin menyertakan lebih banyak histori repo dalam build, tambahkan langkah build dalam file konfigurasi build untuk "membatalkan" clone. Contoh:

steps:
- name: gcr.io/cloud-builders/git
  args: ['fetch', '--unshallow']
...

Untuk mengetahui informasi selengkapnya tentang git fetch, lihat referensi git. Untuk mengetahui petunjuk tentang cara menulis file konfigurasi build, lihat Ringkasan konfigurasi build.

Mengirim ulang build untuk mendapatkan persetujuan

Jika build Anda ditolak, Anda dapat mengirim ulang build untuk mendapatkan persetujuan dengan mengikuti langkah-langkah berikut di konsol Google Cloud :

  1. Buka halaman Cloud Build History di konsol Google Cloud .

    Buka halaman Histori Cloud Build

  2. Klik ID build dari build yang ingin Anda kirim ulang untuk disetujui.

  3. Klik Bangun Ulang di bagian atas halaman untuk mengirim ulang build Anda agar disetujui.

Build Anda akan dimulai saat pengguna dengan izin menyetujui build Anda. Untuk mempelajari persetujuan Cloud Build lebih lanjut, lihat Membatasi build berdasarkan persetujuan.

Memperbarui pemicu build

Konsol

  1. Buka halaman Pemicu di konsol Google Cloud .

    Buka halaman Pemicu build

  2. Di toolbar konsol Google Cloud , pilih project Google Cloud Anda.

  3. Temukan baris dengan pemicu yang ingin Anda perbarui.

  4. Klik menu (elips vertikal) yang berada di ujung kanan baris.

  5. Pilih Edit.

gcloud

Untuk memperbarui pemicu:

  1. Ekspor pemicu yang ingin Anda perbarui:

     gcloud beta builds triggers export TRIGGER_NAME --destination=EXPORT_PATH
    

    Dengan:

    • TRIGGER_NAME adalah nama pemicu Anda.
    • EXPORT_PATH adalah jalur tempat Anda ingin mengekspor pemicu. Misalnya, Anda dapat menentukan jalur sebagai examples/trigger.yaml. Perhatikan bahwa nama file pemicu harus memiliki ekstensi YAML.
  2. Buka file yang berisi pemicu yang diekspor.

    File Anda akan terlihat seperti berikut:

     createTime: '2022-05-26T21:56:11.830784153Z'
     filename: cloudbuild.yaml
     github:
       name: cloud-build-example
       owner: main
       push:
         branch: master
     id: 86201062-3b14-4b6a-a2fb-4ee924e8b1dd
     # remove field name and value to not show build logs
     includeBuildLogs: INCLUDE_BUILD_LOGS_WITH_STATUS
     name: trigger-001
    
  3. Edit file Anda secara manual untuk memperbarui pemicu.

    Untuk melihat kolom yang dapat Anda tambahkan atau hapus dari pemicu, lihat resource pemicu.

  4. Simpan file.

  5. Impor pemicu Anda:

     gcloud builds triggers import --source=IMPORT_PATH
    

    Dengan:

    • IMPORT_PATH adalah jalur pemicu yang ingin Anda impor.

Pemicu build Anda kini diperbarui.

Menonaktifkan pemicu build

Konsol

  1. Buka halaman Pemicu di konsol Google Cloud .

    Buka halaman Pemicu build

  2. Di toolbar konsol Google Cloud , pilih project Google Cloud Anda.

  3. Cari baris dengan pemicu yang ingin Anda nonaktifkan.

  4. Klik menu (elips vertikal) yang berada di ujung kanan baris.

  5. Pilih Disable.

gcloud

Untuk menonaktifkan pemicu:

  1. Ekspor pemicu yang ingin Anda nonaktifkan:

     gcloud beta builds triggers export TRIGGER_NAME --destination=EXPORT_PATH
    

    Dengan:

    • TRIGGER_NAME adalah nama pemicu Anda.
    • EXPORT_PATH adalah jalur tempat Anda ingin mengekspor pemicu. Misalnya, Anda dapat menentukan jalur sebagai examples/trigger.yaml. Perhatikan bahwa nama file pemicu harus memiliki ekstensi YAML.
  2. Buka file yang berisi pemicu yang diekspor.

    File Anda akan terlihat seperti berikut:

     createTime: '2020-02-21T20:02:50.215599013Z'
     description: Push to any branch
     filename: cloudbuild.yaml
     github:
       name: example-repo-name
       owner: example-owner
       push:
         branch: .*
     id: example-id
     name: Push-to-any-branch
     tags:
     - github-default-push-trigger
    
  3. Tambahkan kolom disabled ke akhir file Anda dan tetapkan nilai ke True.

     disabled: True
    
  4. Simpan file.

  5. Impor pemicu Anda:

     gcloud builds triggers import --source=IMPORT_PATH
    

    Dengan:

    • IMPORT_PATH adalah jalur pemicu yang ingin Anda impor.

Pemicu build Anda kini dinonaktifkan.

Menonaktifkan pemicu tidak akan menghapus pemicu. Untuk menghapus pemicu, lihat Menghapus pemicu build. Pemicu dapat diaktifkan kembali dengan mengubah statusnya menjadi Diaktifkan.

Menghapus pemicu build

Konsol

  1. Buka halaman Pemicu di konsol Google Cloud .

    Buka halaman Pemicu build

  2. Di toolbar konsol Google Cloud , pilih project Google Cloud Anda.

  3. Cari baris dengan pemicu yang ingin Anda hapus.

  4. Klik menu (elips vertikal) yang berada di ujung kanan baris.

  5. Pilih Hapus.

gcloud

Untuk menghapus pemicu, jalankan perintah berikut:

  gcloud builds triggers delete TRIGGER_NAME

Dengan:

  • TRIGGER_NAME adalah nama pemicu Anda.

Untuk mengetahui daftar lengkap flag, lihat referensi gcloud untuk mengetahui cara menghapus pemicu.

Implikasi keamanan pemicu build

Akun layanan yang dikonfigurasi untuk pemicu build dapat memberikan izin build yang ditingkatkan kepada pengguna yang menggunakan pemicu untuk memanggil build. Hal ini berlaku untuk akun layanan default Cloud Build dan akun layanan yang ditentukan pengguna. Perhatikan implikasi keamanan berikut saat menggunakan pemicu build:

  • Pengguna yang tidak memiliki akses ke project Cloud Anda, tetapi memiliki akses tulis ke repositori yang terkait dengan pemicu build di project akan memiliki izin untuk mengubah kode yang sedang dibangun.
  • Jika Anda menggunakan pemicu permintaan pull GitHub, setiap pengguna dengan akses baca ke repositori dapat mengirimkan permintaan pull, yang dapat menjalankan build yang mencakup perubahan pada kode dalam permintaan pull. Untuk mempelajari cara menonaktifkan perilaku ini untuk pemicu permintaan pull GitHub, lihat Membuat pemicu GitHub.

Sebaiknya buat akun layanan dengan hanya peran yang diperlukan untuk pemicu Anda. Untuk mempelajari lebih lanjut, lihat Mengonfigurasi akun layanan yang ditentukan pengguna. Untuk mempelajari lebih lanjut akun layanan Cloud Build default dan izin terkaitnya, lihat Akun layanan Cloud Build.

Langkah berikutnya