Pemicu Cloud Build otomatis memulai build setiap kali Anda membuat perubahan pada kode sumber. Anda dapat mengonfigurasi pemicu untuk mem-build kode Anda berdasarkan setiap perubahan pada repositori sumber atau hanya 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
-
Enable the Cloud Build API.
- Anda harus memiliki peran Cloud Build Editor (
roles/cloudbuild.builds.editor
) di 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 mem-build 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 menghubungkannya secara manual.
Jika menghubungkan repositori eksternal, seperti yang dihosting di GitHub atau Bitbucket, Anda memerlukan izin tingkat admin di repositori untuk menghubungkan repositori 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.
Pilih project Anda lalu klik Buka.
Pilih region tempat Anda ingin membuat pemicu dari menu drop-down Region.
Klik Connect Repository.
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 duplikat untuk semua operasinya.
Klik Lanjutkan.
Lakukan autentikasi ke repositori sumber dengan nama pengguna dan sandi Anda.
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 sedang Anda gunakan.
Klik Create a trigger untuk melanjutkan pembuatan pemicu build guna mengotomatiskan build untuk kode sumber di repositori, atau klik Done.
Membuat pemicu build
Konsol
Buka halaman Pemicu di konsol Google Cloud.
Pilih project Anda dari menu drop-down pemilih project di bagian atas halaman.
Klik Buka.
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 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. Ini dapat berupa region kumpulan pribadi, jika Anda menentukan kumpulan pribadi dalam 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.
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 Anda. Untuk mempelajari lebih lanjut, lihat repositori Cloud Build.
- Repositori: Dari daftar repositori yang tersedia, pilih repositori yang diinginkan. 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 informasi selengkapnya tentang sintaksis ekspresi reguler yang dapat diterima, lihat sintaksis RE2.Saat build dieksekusi, 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 akan dieksekusi. Untuk mempelajari lebih lanjut, lihat Gate 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 meliputi karakter yang didukung oleh Go Match,
**
, dan alternation.File yang diabaikan (opsional): Perubahan yang hanya memengaruhi file yang diabaikan tidak 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 alternation.Jika Anda menentukan file di File yang disertakan dan File yang diabaikan, perubahan pada file tersebut tidak akan memanggil 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 mendorong perubahan ke sumber, Cloud Build akan memeriksa file yang diubah untuk menemukan file yang disertakan dan diabaikan guna menentukan apakah build harus dipanggil:- Jika Anda mendorong perubahan ke repositori di cabang yang ada, Cloud Build akan melihat file yang diubah antara commit yang baru saja Anda dorong 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 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 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. - Buildpack: 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 gambar 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 dieksekusi 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 lebih lanjut variabel lingkungan buildpack, lihat Variabel lingkungan. Inline: Jika memilih File konfigurasi Cloud Build (yaml atau json) sebagai opsi konfigurasi, Anda dapat menentukan konfigurasi build secara langsung. Klik Buka Editor untuk menulis file konfigurasi build di konsol Google Cloud menggunakan sintaksis YAML atau JSON. Klik Done 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 Use private pool, tentukan nama resource private pool dalam bentuk
projects/WORKERPOOL_PROJECT_ID/locations/REGION/workerPools/WORKERPOOL_ID
.Substitution variables (opsional): Jika 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 dengan setiap pemicu men-deploy aplikasi ke lingkungan tertentu. Anda dapat menentukan bahwa aplikasi di-deploy ke lingkungan dalam file konfigurasi build, lalu menggunakan kolom ini untuk menentukan variabel penggantian yang menentukan lingkungan tempat pemicu ini akan di-deploy. Untuk mengetahui informasi tentang 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. Jika Anda tidak memilih akun layanan, akun layanan lama Cloud Build akan digunakan jika tersedia untuk project Anda.
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 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 Anda tidak menyertakan tanda ini, akun layanan lama Cloud Build akan digunakan jika tersedia untuk project Anda.
- [Opsional]
--require-approval
adalah flag yang akan disertakan untuk mengonfigurasi pemicu agar memerlukan persetujuan.
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 \
--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 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 Anda tidak menyertakan tanda ini, akun layanan lama Cloud Build akan digunakan jika tersedia untuk project Anda.- [Opsional]
--require-approval
adalah flag yang akan disertakan untuk mengonfigurasi pemicu agar memerlukan persetujuan. - [Opsional]
--include-logs-with-status
adalah flag 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 ini:
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.
Temukan pemicu Anda dalam daftar, lalu klik Run trigger.
Melewati pemicu build
Dalam beberapa kasus, Anda mungkin ingin membuat perubahan pada kode sumber, tetapi 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 trigger di halaman Triggers.
Menyertakan histori repositori dalam build
Untuk mem-build sumber di repo Git, Cloud Build melakukan cloning dangkal repo. Artinya, hanya satu commit yang memulai build yang akan di-check out 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 untuk "memperdalam" clone. Contoh:
steps:
- name: gcr.io/cloud-builders/git
args: ['fetch', '--unshallow']
...
Untuk mengetahui informasi selengkapnya tentang git fetch
, lihat referensi
git.
Untuk petunjuk cara menulis file konfigurasi build, lihat Ringkasan konfigurasi build.
Mengirim ulang build untuk mendapatkan persetujuan
Jika build Anda telah ditolak, Anda dapat mengirim ulang build untuk disetujui 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 Build ulang di bagian atas halaman untuk mengirim ulang build Anda untuk disetujui.
Build Anda akan dimulai saat pengguna yang memiliki izin menyetujui build Anda. Untuk mempelajari persetujuan Cloud Build lebih lanjut, lihat Melakukan build dengan persetujuan.
Memperbarui pemicu build
Konsol
Buka halaman Pemicu di konsol Google Cloud.
Pilih project Anda dari menu drop-down pemilih project di bagian atas halaman.
Klik Buka.
Temukan baris dengan pemicu yang ingin diperbarui.
Klik menu (elips vertikal) yang terletak di ujung kanan baris.
Pilih Edit.
gcloud
Untuk memperbarui pemicu:
Ekspor pemicu yang ingin diperbarui:
gcloud beta builds triggers export TRIGGER_NAME --destination=EXPORT_PATH
Dengan keterangan:
TRIGGER_NAME
adalah nama pemicu Anda.EXPORT_PATH
adalah jalur file tempat Anda ingin mengekspor pemicu. Misalnya, Anda dapat menentukan jalur file sebagaiexamples/trigger.yaml
. Perhatikan bahwa nama file untuk pemicu Anda 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 secara manual untuk memperbarui pemicu.
Untuk melihat kolom yang dapat ditambahkan atau dihapus dari pemicu, lihat referensi pemicu.
Simpan file.
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 kini diperbarui.
Menonaktifkan pemicu build
Konsol
Buka halaman Pemicu di konsol Google Cloud.
Pilih project Anda dari menu drop-down pemilih project di bagian atas halaman.
Klik Buka.
Cari baris yang berisi pemicu yang ingin dinonaktifkan.
Klik menu (elips vertikal) yang terletak di ujung kanan baris.
Pilih Disable.
gcloud
Untuk menonaktifkan pemicu:
Ekspor pemicu yang ingin dinonaktifkan:
gcloud beta builds triggers export TRIGGER_NAME --destination=EXPORT_PATH
Dengan keterangan:
TRIGGER_NAME
adalah nama pemicu Anda.EXPORT_PATH
adalah jalur file tempat Anda ingin mengekspor pemicu. Misalnya, Anda dapat menentukan jalur file sebagaiexamples/trigger.yaml
. Perhatikan bahwa nama file untuk pemicu Anda 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 dan tetapkan nilai keTrue
.disabled: True
Simpan file.
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 kini dinonaktifkan.
Menonaktifkan pemicu tidak akan menghapus pemicu. Untuk menghapus pemicu, lihat Menghapus pemicu build. Pemicu dapat diaktifkan kembali dengan mengubah statusnya menjadi Aktif.
Menghapus pemicu build
Konsol
Buka halaman Pemicu di konsol Google Cloud.
Pilih project Anda dari menu drop-down pemilih project di bagian atas halaman.
Klik Buka.
Cari baris dengan pemicu yang ingin Anda hapus.
Klik menu (elips vertikal) yang terletak di ujung kanan baris.
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 flag, lihat referensi gcloud
untuk mengetahui cara menghapus pemicu.
Implikasi keamanan pemicu build
Akun layanan yang dikonfigurasi untuk pemicu build dapat memberikan izin waktu 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 dalam project akan memiliki izin untuk mengubah kode yang sedang dibuat.
- Jika Anda menggunakan pemicu permintaan pull GitHub, setiap pengguna dengan 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 hanya dengan peran yang diperlukan untuk pemicu Anda. Untuk mempelajari lebih lanjut, lihat Mengonfigurasi akun layanan yang ditentukan pengguna. Untuk mempelajari akun layanan lama Cloud Build dan izin terkaitnya lebih lanjut, lihat Akun layanan Cloud Build.
Langkah selanjutnya
- Pelajari cara memulai build secara manual atau menyiapkan deployment yang memerlukan pemanggilan manual dengan mem-build 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 blue/green di Compute Engine.
- Pelajari cara memecahkan masalah error build.