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.
- 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:
Buka halaman Pemicu di konsol Google Cloud .
Di toolbar konsol Google Cloud , pilih project Google Cloud Anda.
Klik Connect Repository.
Pilih region tempat Anda ingin membuat pemicu dari menu drop-down Region.
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.
Klik Lanjutkan.
Lakukan autentikasi ke repositori sumber Anda dengan nama pengguna dan sandi Anda.
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
Klik Buat pemicu untuk melanjutkan pembuatan pemicu build guna mengotomatiskan build untuk kode sumber di repositori, atau klik Selesai.
Membuat pemicu build
Konsol
Buka halaman Pemicu di konsol Google Cloud .
Di toolbar konsol Google Cloud , pilih project Google Cloud Anda.
Klik Create trigger.
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.
- Repositori: Dari daftar repositori yang tersedia, pilih repositori. Untuk menghubungkan repositori baru, lihat Menghubungkan ke repositori sumber.
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 mengabaikanREADME.md
di direktori mana pun, dan menentukansrc/*
di File yang disertakan untuk memulai build pada perubahan pada file apa pun di foldersrc/
. Sekarang, jika Anda membuat perubahan padasrc/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 adalahDockerfile
atau buildpack, Anda harus memberikan nama untuk image yang dihasilkan dan secara opsional, waktu tunggu untuk build Anda. Setelah memberikan nama imageDockerfile
atau buildpack, Anda akan melihat pratinjau perintahdocker build
ataupack
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.
- Repositori: Jika file konfigurasi Anda berada di
repositori jarak jauh, berikan lokasi
file konfigurasi build, direktori
- Type: Pilih jenis konfigurasi yang akan digunakan untuk 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.
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:
Buka halaman Pemicu di konsol Google Cloud .
Di toolbar konsol Google Cloud , pilih project Google Cloud Anda.
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 :
Buka halaman Cloud Build History di konsol Google Cloud .
Klik ID build dari build yang ingin Anda kirim ulang untuk disetujui.
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
Buka halaman Pemicu di konsol Google Cloud .
Di toolbar konsol Google Cloud , pilih project Google Cloud Anda.
Temukan baris dengan pemicu yang ingin Anda perbarui.
Klik menu (elips vertikal) yang berada di ujung kanan baris.
Pilih Edit.
gcloud
Untuk memperbarui pemicu:
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 sebagaiexamples/trigger.yaml
. Perhatikan bahwa nama file pemicu harus memiliki ekstensi YAML.
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
Edit file Anda secara manual untuk memperbarui pemicu.
Untuk melihat kolom yang dapat Anda tambahkan atau hapus dari pemicu, lihat resource pemicu.
Simpan file.
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
Buka halaman Pemicu di konsol Google Cloud .
Di toolbar konsol Google Cloud , pilih project Google Cloud Anda.
Cari baris dengan pemicu yang ingin Anda nonaktifkan.
Klik menu (elips vertikal) yang berada di ujung kanan baris.
Pilih Disable.
gcloud
Untuk menonaktifkan pemicu:
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 sebagaiexamples/trigger.yaml
. Perhatikan bahwa nama file pemicu harus memiliki ekstensi YAML.
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
Tambahkan kolom
disabled
ke akhir file Anda dan tetapkan nilai keTrue
.disabled: True
Simpan file.
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
Buka halaman Pemicu di konsol Google Cloud .
Di toolbar konsol Google Cloud , pilih project Google Cloud Anda.
Cari baris dengan pemicu yang ingin Anda hapus.
Klik menu (elips vertikal) yang berada di ujung kanan baris.
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
- Pelajari cara memulai build secara manual atau menyiapkan deployment yang memerlukan pemanggilan manual dengan membangun kode secara manual di repositori sumber.
- Pelajari cara membuat pemicu GitHub.
- Pelajari cara mengotomatiskan build sebagai respons terhadap peristiwa Pub/Sub.
- Pelajari cara mengotomatiskan build sebagai respons terhadap peristiwa webhook.
- Pelajari cara melihat hasil build untuk pemicu build.
- Pelajari cara melakukan deployment biru-hijau di Compute Engine.
- Pelajari cara memecahkan masalah error build.