Membuat dan mengelola pemicu build

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

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

Sebelum memulai

  • Aktifkan API Cloud Build.

    Mengaktifkan API

  • Anda harus memiliki peran Cloud Build Editor (roles/cloudbuild.builds.editor) dalam project untuk membuat pemicu.
  • Anda memerlukan kode sumber di Cloud Source Repositories, GitHub, atau Bitbucket.
  • Anda memerlukan Dockerfile atau file konfigurasi Cloud Build.

Menghubungkan ke repositori sumber

Anda harus menghubungkan Cloud Build ke repositori sumber terlebih dahulu sebelum membangun kode dalam repositori tersebut. Repositori Anda di Cloud Source Repositories terhubung ke Cloud Build secara default. Anda dapat langsung membuat pemicu untuk repositori Anda 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 terlebih dahulu. 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. Pilih project Anda lalu klik Buka.

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

  4. Klik Connect Repository.

  5. Pilih repositori tempat Anda menyimpan kode sumber.

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

  6. Klik Lanjutkan.

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

  8. Dari daftar repositori yang tersedia, pilih repositori yang diinginkan, lalu klik Connect.

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

  9. Klik Create a trigger untuk melanjutkan pembuatan pemicu build guna mengotomatiskan build untuk kode sumber di repositori, atau klik Done.

Membuat pemicu build

Konsol

  1. Buka halaman Pemicu di Konsol Google Cloud.

    Buka halaman Pemicu

  2. Pilih project Anda dari menu drop-down pemilih project di bagian atas halaman.

  3. Klik Buka.

  4. Klik Create trigger.

  5. Masukkan setelan pemicu berikut:

    • Nama: Masukkan nama untuk pemicu Anda.

    • Region: Pilih wilayah untuk pemicu Anda.

      Jika file konfigurasi build yang terkait dengan pemicu menetapkan kumpulan pribadi, region yang Anda pilih untuk pemicu harus cocok dengan region kumpulan pribadi.

      Jika Anda memilih global sebagai region, Cloud Build akan menggunakan region yang ditentukan dalam file konfigurasi build untuk menjalankan build Anda. Kumpulan ini dapat berupa region kumpulan pribadi, jika Anda menentukan kumpulan pribadi pada file konfigurasi build, atau kumpulan default global jika Anda tidak menentukan kumpulan pribadi.

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

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

      • Permintaan pull: Menetapkan 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.

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

        Saat build Anda dijalankan, Cloud Build akan menyalin konten repositori Anda ke /workspace, direktori kerja default untuk Cloud Build. Pelajari direktori kerja lebih lanjut 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 dalam pemicu Anda. Kebijakan organisasi akan mengganti pemicu dan build Anda tidak dijalankan. Untuk mempelajari lebih lanjut, lihat Kebijakan build berdasarkan organisasi untuk project Anda.

    • Included files (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 memanggil build. Anda dapat menggunakan string glob untuk menentukan banyak file dengan karakter pengganti. Karakter pengganti yang dapat diterima mencakup karakter yang didukung oleh Go Match, **, dan alternasi.

      Jika Anda menentukan file dalam Included files dan Ignored files, perubahan pada file tersebut tidak akan memanggil build. Misalnya, Anda menentukan **/README.md di File yang diabaikan untuk mengabaikan README.md di direktori mana pun, dan menentukan src/* di Included files untuk memulai build on perubahan pada file apa pun dalam 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 menemukan file yang disertakan dan diabaikan untuk menentukan apakah build harus dipanggil atau tidak:

      • Jika Anda mengirim perubahan ke repositori di cabang yang ada, Cloud Build akan melihat file yang diubah antara commit yang baru saja Anda dorong dan commit yang ditunjuk oleh cabang sebelumnya.
      • Jika repositori Anda adalah Cloud Source Repository dan Anda mengirim perubahan ke cabang yang baru dibuat, Cloud Build akan memperlakukan semua file dalam repositori sebagai file yang diubah.
      • Jika Anda menghapus cabang, Cloud Build tidak akan memulai build.
    • Konfigurasi: Pilih file konfigurasi build yang berada di repositori jarak jauh atau buat file konfigurasi build inline untuk digunakan pada build Anda.

      • Type: Pilih jenis konfigurasi yang akan digunakan untuk build Anda.
        • Cloud Build configuration file (yaml atau json): Menggunakan file konfigurasi build untuk konfigurasi Anda.
        • Dockerfile: Gunakan Dockerfile untuk konfigurasi Anda.
        • Buildpacks: Gunakan buildpacks untuk konfigurasi Anda.
      • Location: Menentukan lokasi untuk konfigurasi Anda.

        • Repositori: Jika file konfigurasi Anda berada di repositori jarak jauh, berikan lokasi file konfigurasi build, direktori Dockerfile, atau direktori buildpacks. Jika jenis konfigurasi build adalah Dockerfile atau buildpack, Anda harus memberi nama untuk image yang dihasilkan dan, jika perlu, waktu tunggu untuk build. 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 dan nilai lingkungan buildpack Anda. Untuk mempelajari variabel lingkungan buildpack lebih lanjut, lihat Variabel lingkungan.
        • Inline: Jika memilih Cloud Build configuration file (yaml atau json) sebagai opsi konfigurasi, Anda dapat menentukan konfigurasi build secara inline. Klik Open Editor untuk menulis file konfigurasi build di Google Cloud Console menggunakan sintaksis YAML atau JSON. Klik Done untuk menyimpan konfigurasi build Anda.

    • Use private pool: Kolom ini muncul jika Anda memilih Dockerfile sebagai opsi Configuration Anda. Pilih kotak centang ini jika Anda menjalankan build di kumpulan pribadi.

    • Private pool: Jika Anda memilih Use private pool, tentukan nama resource private pool dengan format projects/WORKERPOOL_PROJECT_ID/locations/REGION/workerPools/WORKERPOOL_ID.

    • Variabel substitusi (opsional): Jika memilih file konfigurasi Cloud Build sebagai opsi konfigurasi build, Anda dapat memilih untuk menentukan variabel substitusi khusus pemicu menggunakan kolom ini. Misalnya, Anda membuat beberapa pemicu dengan setiap pemicu men-deploy aplikasi Anda ke lingkungan tertentu. Anda dapat menentukan apakah aplikasi Anda di-deploy ke lingkungan dalam file konfigurasi build, lalu menggunakan kolom ini untuk menentukan variabel substitusi yang menentukan lingkungan mana yang harus di-deploy oleh pemicu ini. Untuk informasi tentang cara menentukan nilai substitusi 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. Jika Anda tidak memilih akun layanan, akun layanan Cloud Build default akan digunakan.

  6. Klik Buat untuk menyimpan pemicu build Anda.

gcloud

Untuk membuat pemicu jika kode sumber Anda berada 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 keterangan:

  • 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 email yang terkait dengan akun layanan Anda. Jika flag ini tidak disertakan, akun layanan Cloud Build default akan digunakan.

  • [Opsional] --require-approval adalah tanda yang akan disertakan untuk mengonfigurasi pemicu agar mewajibkan persetujuan.

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

Untuk membuat pemicu jika kode sumber Anda ada di GitHub:

    gcloud builds triggers create github \
    --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 keterangan:

  • REGION adalah region untuk pemicu Anda.
  • REPO_NAME adalah nama repositori Anda.
  • REPO_OWNER adalah nama pengguna dari 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 email yang terkait dengan akun layanan Anda. Jika flag ini tidak disertakan, akun layanan Cloud Build default akan digunakan.
  • [Opsional] --require-approval adalah tanda yang akan disertakan untuk mengonfigurasi pemicu agar mewajibkan persetujuan.
  • [Opsional] --include-logs-with-status adalah tanda yang dapat ditentukan untuk menampilkan log build bagi repositori Anda. Flag ini didukung untuk build dari repositori GitHub dan GitHub Enterprise.

Untuk mengetahui daftar lengkap flag, lihat referensi gcloud terkait 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 ini:

  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. Temukan pemicu Anda dalam daftar, lalu klik Jalankan pemicu.

Melewati pemicu build

Dalam beberapa kasus, Anda mungkin ingin mengubah kode sumber, tetapi tidak ingin memanggil build. Misalnya, Anda mungkin tidak ingin memanggil build saat mengupdate file dokumentasi atau 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 trigger di halaman Pemicu.

Menyertakan histori repositori dalam build

Untuk mem-build sumber di repo Git, Cloud Build menjalankan clone repo yang dangkal. Ini berarti hanya satu commit yang memulai build yang diperiksa di ruang kerja untuk di-build. Cloud Build tidak memeriksa cabang atau histori lainnya. Hal ini dilakukan untuk efisiensi, sehingga build tidak perlu menunggu untuk mengambil seluruh repositori dan histori hanya untuk mem-build satu commit.

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

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

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

Mengirimkan ulang build untuk mendapatkan persetujuan

Jika build ditolak, Anda dapat mengirim ulang build untuk disetujui dengan mengikuti langkah-langkah berikut di Konsol Google Cloud:

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

    Buka halaman Cloud Build History

  2. Klik ID build build yang ingin Anda kirim ulang untuk mendapatkan persetujuan.

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

Build Anda akan dimulai ketika pengguna yang memiliki izin menyetujui build Anda. Untuk mempelajari persetujuan Cloud Build lebih lanjut, lihat Membuat gerbang berdasarkan persetujuan.

Mengupdate pemicu build

Konsol

  1. Buka halaman Pemicu di Konsol Google Cloud.

    Buka halaman Pemicu build

  2. Pilih project Anda dari menu drop-down pemilih project di bagian atas halaman.

  3. Klik Buka.

  4. Cari baris dengan pemicu yang ingin Anda perbarui.

  5. Klik menu (elips vertikal) yang terletak di ujung kanan baris.

  6. Pilih Edit.

gcloud

Untuk memperbarui pemicu:

  1. Ekspor pemicu yang ingin Anda perbarui:

     gcloud builds triggers export TRIGGER_NAME --destination=EXPORT_PATH
    

    Dengan keterangan:

    • TRIGGER_NAME adalah nama pemicu Anda.
    • EXPORT_PATH adalah jalur file yang ingin Anda ekspor pemicu Anda. Misalnya, Anda dapat menentukan jalur file sebagai examples/trigger.yaml. Perhatikan bahwa nama file untuk pemicu Anda 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 ditambahkan atau dihapus dari pemicu, lihat resource pemicu.

  4. Simpan file.

  5. Impor pemicu Anda:

     gcloud builds triggers import --source=IMPORT_PATH
    

    Dengan keterangan:

    • IMPORT_PATH adalah jalur file pemicu yang ingin Anda impor.

Pemicu build Anda sekarang telah diupdate.

Menonaktifkan pemicu build

Konsol

  1. Buka halaman Pemicu di Konsol Google Cloud.

    Buka halaman Pemicu build

  2. Pilih project Anda dari menu drop-down pemilih project di bagian atas halaman.

  3. Klik Buka.

  4. Cari baris dengan pemicu yang ingin dinonaktifkan.

  5. Klik menu (elips vertikal) yang terletak di ujung kanan baris.

  6. Pilih Disable.

gcloud

Untuk menonaktifkan pemicu:

  1. Ekspor pemicu yang ingin Anda nonaktifkan:

     gcloud builds triggers export TRIGGER_NAME --destination=EXPORT_PATH
    

    Dengan keterangan:

    • TRIGGER_NAME adalah nama pemicu Anda.
    • EXPORT_PATH adalah jalur file yang ingin Anda ekspor pemicu Anda. Misalnya, Anda dapat menentukan jalur file sebagai examples/trigger.yaml. Perhatikan bahwa nama file untuk pemicu Anda 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 bagian akhir file dan tetapkan nilainya ke True.

     disabled: True
    
  4. Simpan file.

  5. Impor pemicu Anda:

     gcloud builds triggers import --source=IMPORT_PATH
    

    Dengan keterangan:

    • IMPORT_PATH adalah jalur file pemicu yang ingin Anda impor.

Pemicu build Anda sekarang dinonaktifkan.

Menonaktifkan pemicu tidak akan menghapus pemicu tersebut. 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. Pilih project Anda dari menu drop-down pemilih project di bagian atas halaman.

  3. Klik Buka.

  4. Cari baris dengan pemicu yang ingin Anda hapus.

  5. Klik menu (elips vertikal) yang terletak di ujung kanan baris.

  6. Pilih Hapus.

gcloud

Untuk menghapus pemicu, jalankan perintah berikut:

  gcloud builds triggers delete TRIGGER_NAME

Dengan keterangan:

  • TRIGGER_NAME adalah nama pemicu Anda.

Untuk mengetahui daftar lengkap tanda, lihat referensi gcloud tentang cara menghapus pemicu.

Implikasi keamanan dari pemicu build

Secara default, pemicu build menggunakan akun layanan Cloud Build untuk menjalankan build, yang dapat memberikan izin waktu build kepada pengguna yang menggunakan pemicu untuk menjalankan build. Perhatikan implikasi keamanan berikut saat menggunakan pemicu build:

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

Praktik keamanan yang baik adalah membuat akun layanan dengan hanya peran yang diperlukan untuk pemicu Anda. Untuk mempelajari lebih lanjut, lihat Mengonfigurasi akun layanan yang ditentukan pengguna. Untuk mempelajari akun layanan Cloud Build dan izin terkaitnya lebih lanjut, lihat Akun layanan Cloud Build.

Langkah selanjutnya