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.
- 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:
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 yang dicerminkan 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 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 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.
- Repository: Dari daftar repositori yang tersedia, pilih repositori yang diinginkan. Untuk menghubungkan repositori baru, lihat Menghubungkan ke repositori sumber.
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 mengabaikanREADME.md
di direktori mana pun, dan menentukansrc/*
di Included files untuk memulai build on perubahan pada file apa pun dalam 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 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 adalahDockerfile
atau buildpack, Anda harus memberi nama untuk image yang dihasilkan dan, jika perlu, waktu tunggu untuk build. 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 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.
- 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.
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.
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:
Buka halaman Pemicu di Konsol Google Cloud.
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:
Buka halaman Cloud Build History di Konsol Google Cloud.
Klik ID build build yang ingin Anda kirim ulang untuk mendapatkan persetujuan.
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
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 perbarui.
Klik menu (elips vertikal) yang terletak di ujung kanan baris.
Pilih Edit.
gcloud
Untuk memperbarui pemicu:
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 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 Anda secara manual untuk memperbarui pemicu.
Untuk melihat kolom yang dapat ditambahkan atau dihapus dari pemicu, lihat resource 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 sekarang telah diupdate.
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 dengan pemicu yang ingin dinonaktifkan.
Klik menu (elips vertikal) yang terletak di ujung kanan baris.
Pilih Disable.
gcloud
Untuk menonaktifkan pemicu:
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 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 bagian akhir file dan tetapkan nilainya 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 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
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 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
- Pelajari cara memulai build secara manual atau menyiapkan deployment yang memerlukan pemanggilan manual dengan membuat 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 blue/green deployment di Compute Engine.
- Pelajari cara memecahkan masalah error build.