Anda dapat mengonfigurasi Cloud Build untuk mengirimkan notifikasi build kepada Anda ke Slack, Google Chat, server SMTP, endpoint HTTP, atau instance BigQuery menggunakan Cloud Build Notifier. Halaman ini menjelaskan cara mengotomatiskan proses konfigurasi untuk notifikasi yang Anda inginkan.
Mengotomatiskan konfigurasi notifikasi
Cloud Build menyediakan skrip penyiapan yang dapat Anda gunakan untuk mengotomatiskan konfigurasi notifikasi. Untuk mengonfigurasi notifikasi menggunakan skrip penyiapan:
Slack
Menyiapkan
Bagian berikut menjelaskan langkah-langkah yang harus Anda selesaikan sebelum mengotomatiskan konfigurasi notifikasi untuk notifikasi Anda.
Mengaktifkan API
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Mendapatkan dan menyimpan kredensial
Buat aplikasi Slack untuk ruang kerja Slack tempat Anda ingin mengirim notifikasi.
Aktifkan webhook masuk untuk memposting pesan dari Cloud Build ke Slack.
Buka aplikasi Slack Anda untuk menemukan URL webhook masuk. URL Anda akan terlihat seperti berikut:
http://hooks.slack.com/services/...
Simpan URL webhook masuk Anda di Secret Manager:
Buka halaman Secret Manager di konsol Google Cloud :
Klik Buat secret.
Masukkan nama untuk rahasia Anda.
Di bagian Secret value, tambahkan URL webhook masuk untuk aplikasi Slack Anda.
Untuk menyimpan secret, klik Buat secret.
Menulis file konfigurasi notifikasi
Tulis file konfigurasi notifikasi untuk mengonfigurasi notifikasi Slack dan memfilter peristiwa build:
Dalam file konfigurasi notifikasi contoh berikut, kolom filter
menggunakan Common Expression Language dengan variabel yang tersedia, build
, untuk memfilter peristiwa build dengan status SUCCESS
:
apiVersion: cloud-build-notifiers/v1
kind: SlackNotifier
metadata:
name: example-slack-notifier
spec:
notification:
filter: build.status == Build.Status.SUCCESS
delivery:
webhookUrl:
secretRef: webhook-url
template:
type: golang
uri: gs://example-gcs-bucket/slack.json
secrets:
- name: webhook-url
value: projects/project-id/secrets/secret-name/versions/latest
Dengan:
webhook-url
adalah variabel konfigurasi yang digunakan dalam contoh ini untuk mereferensikan jalur URL webhook Slack yang disimpan di Secret Manager. Nama variabel yang Anda tentukan di sini harus cocok dengan kolomname
di bagiansecrets
.project-id
adalah ID project Google Cloud Anda.secret-name
adalah nama secret yang berisi URL webhook Slack Anda.- Kolom
uri
merujuk pada fileslack.json
. File ini berisi template JSON yang dihosting di Cloud Storage dan merepresentasikan pesan notifikasi Anda ke ruang kerja Slack.
Untuk melihat contohnya, lihat file konfigurasi notifikasi untuk notifikasi Slack.
Menjalankan skrip otomatisasi
Untuk mengotomatiskan konfigurasi notifikasi untuk notifikasi Anda:
Buat clone repositori cloud-build-notifiers.
Konfigurasi Google Cloud CLI dengan project ID dan region Anda:
gcloud config set project project-id gcloud config set run/region region
Dengan:
project-id
adalah Google Cloud project ID Anda.region
adalah region untuk men-deploy notifikasi.
Jalankan perintah berikut di root repositori:
./setup.sh slack config-path -t template-path -s secret-name
Dengan:
config-path
adalah jalur ke file konfigurasi notifikasi Anda.template-path
adalah jalur ke file template notifiers Anda. File template notifiers berisi template JSON yang dihosting di Cloud Storage dan merepresentasikan pesan notifikasi Anda. Anda dapat menyertakan file template notifikasi sebagai jalur menggunakan variabel ini atau dalam kolomuri
file konfigurasi notifikasi.secret-name
adalah nama secret Anda yang disimpan di Secret Manager.
Setelah menjalankan skrip, Anda akan melihat pesan berikut:
** NOTIFIER SETUP COMPLETE **
Notifikasi Anda kini telah disiapkan. Anda dapat melihat skrip lengkap di
repositori cloud-build-notifiers atau menjalankan ./setup.sh --help
untuk mengetahui petunjuk penggunaan yang terkait dengan skrip.
SMTP
Menyiapkan
Bagian berikut menjelaskan langkah-langkah yang harus Anda selesaikan sebelum mengotomatiskan konfigurasi notifikasi untuk notifikasi Anda.
Mengaktifkan API
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Menyimpan kredensial
Simpan sandi akun email pengirim di Secret Manager:
Buka halaman Secret Manager di konsol Google Cloud :
Klik Buat secret.
Masukkan nama untuk rahasia Anda.
Di bagian Secret value, tambahkan sandi akun email pengirim.
Untuk menyimpan secret, klik Buat secret.
Menulis file konfigurasi notifikasi
Tulis file konfigurasi notifikasi untuk mengonfigurasi notifikasi SMTP dan filter pada peristiwa build:
Dalam file konfigurasi notifikasi contoh berikut, kolom filter
menggunakan Common Expression Language dengan variabel yang tersedia, build
, untuk memfilter peristiwa build dengan status SUCCESS
:
apiVersion: cloud-build-notifiers/v1
kind: SMTPNotifier
metadata:
name: example-smtp-notifier
spec:
notification:
filter: build.status == Build.Status.SUCCESS
delivery:
server: server-host-name
port: "port"
sender: sender-email
from: from-email
recipients:
- recipient-email
# optional: more emails here
password:
secretRef: smtp-password
template:
type: golang
uri: gs:example-gcs-bucket/smtp.html
secrets:
- name: smtp-password
value: projects/project-id/secrets/secret-name/versions/latest
Dengan:
server-host-name
adalah alamat server SMTP Anda.port
adalah port yang akan menangani permintaan SMTP. Nilai ini harus ditentukan sebagai string.sender-email
adalah alamat email akun pengirim yang terlihat oleh server-host-name yang ditentukan.from-email
adalah alamat email yang dilihat oleh penerima.recipient-email
adalah daftar satu atau beberapa alamat email untuk menerima pesan dari pengirim.smtp-password
adalah variabel konfigurasi yang digunakan dalam contoh ini untuk mereferensikan sandi akun email pengirim yang disimpan di Secret Manager. Nama variabel yang Anda tentukan di sini harus cocok dengan kolomname
di bagiansecrets
.project-id
adalah ID project Google Cloud Anda.secret-name
adalah nama secret Anda yang berisi sandi ke akun email pengirim.- Kolom
uri
merujuk pada filesmtp.html
. File ini merujuk ke template HTML yang dihosting di Cloud Storage dan merepresentasikan email notifikasi Anda.
Untuk melihat contohnya, lihat file konfigurasi notifikasi untuk notifikasi SMTP.
Menjalankan skrip otomatisasi
Untuk mengotomatiskan konfigurasi notifikasi untuk notifikasi Anda:
Buat clone repositori cloud-build-notifiers.
Konfigurasi Google Cloud CLI dengan project ID dan region Anda:
gcloud config set project project-id gcloud config set run/region region
Dengan:
project-id
adalah Google Cloud project ID Anda.region
adalah region untuk men-deploy notifikasi.
Jalankan perintah berikut di root repositori:
./setup.sh smtp config-path -t template-path -s secret-name
Dengan:
config-path
adalah jalur ke file konfigurasi notifikasi Anda.template-path
adalah jalur ke file template notifiers Anda. File template notifiers berisi template JSON yang dihosting di Cloud Storage dan merepresentasikan pesan notifikasi Anda. Anda dapat menyertakan file template notifikasi sebagai jalur menggunakan variabel ini atau dalam kolomuri
file konfigurasi notifikasi.secret-name
adalah nama secret Anda yang disimpan di Secret Manager.
Setelah menjalankan skrip, Anda akan melihat pesan berikut:
** NOTIFIER SETUP COMPLETE **
Notifikasi Anda kini telah disiapkan. Anda dapat melihat skrip lengkap di
repositori cloud-build-notifiers atau menjalankan ./setup.sh --help
untuk mengetahui petunjuk penggunaan yang terkait dengan skrip.
BigQuery
Menyiapkan
Bagian berikut menjelaskan langkah-langkah yang harus Anda selesaikan sebelum mengotomatiskan konfigurasi notifikasi untuk notifikasi Anda.
Mengaktifkan API
Enable the Cloud Build, Cloud Run, Pub/Sub, and BigQuery APIs.
Memberikan izin
Beri akun layanan Cloud Run Anda izin untuk membuat dan menulis tabel BigQuery serta izin untuk mengambil data Artifact Registry yang terkait dengan build Anda:
Buka halaman IAM di Google Cloud konsol:
Cari akun layanan default Compute Engine yang terkait dengan project Anda:
Akun layanan default Compute Engine Anda akan terlihat mirip dengan berikut, dengan project-number adalah nomor project Anda:
project-number-compute@developer.gserviceaccount.com
Klik ikon pensil di baris yang berisi akun layanan default Compute Engine Anda.
Anda akan melihat tab Edit akses.
Klik Add another role.
Tambahkan peran berikut:
- Pembaca Artifact Registry
BigQuery Data Editor
Peran Artifact Registry Reader memungkinkan Anda mengambil data untuk gambar Anda. Editor Data BigQuery memberi Anda akses baca dan tulis ke data Anda.
Klik Simpan.
Menulis file konfigurasi notifikasi
Tulis file konfigurasi notifikasi untuk mengonfigurasi notifikasi BigQuery dan memfilter peristiwa build:
Dalam contoh file konfigurasi notifikasi berikut, kolom filter
menggunakan Common Expression Language dengan variabel, build
, untuk memfilter peristiwa build dengan ID pemicu yang ditentukan:
apiVersion: cloud-build-notifiers/v1
kind: BigQueryNotifier
metadata:
name: example-bigquery-notifier
spec:
notification:
filter: build.build_trigger_id == "123e4567-e89b-12d3-a456-426614174000"
delivery:
table: projects/project-id/datasets/dataset-name/tables/table-name
template:
type: golang
uri: gs://example-gcs-bucket/bq.json
Dengan:
project-id
adalah ID project Google Cloud Anda.dataset-name
adalah nama yang ingin Anda berikan pada set data.table-name
adalah nama yang ingin Anda berikan pada tabel.
table-name di file konfigurasi notifikasi Anda dapat merujuk ke:
- tabel yang tidak ada
- tabel kosong tanpa skema
tabel yang ada dengan skema yang cocok dengan spesifikasi skema di notifikasi BigQuery
Kolom
uri
merujuk pada filebq.json
. File ini merujuk ke template JSON yang dihosting di Cloud Storage dan merepresentasikan informasi yang akan disisipkan ke dalam tabel BigQuery Anda.
Untuk melihat contohnya, lihat file konfigurasi notifikasi untuk notifikasi BigQuery.
Menjalankan skrip otomatisasi
Untuk mengotomatiskan konfigurasi notifikasi untuk notifikasi Anda:
Buat clone repositori cloud-build-notifiers.
Konfigurasi Google Cloud CLI dengan project ID dan region Anda:
gcloud config set project project-id gcloud config set run/region region
Dengan:
project-id
adalah Google Cloud project ID Anda.region
adalah region untuk men-deploy notifikasi.
Jalankan perintah berikut di root repositori:
./setup.sh bigquery -t config-path -t template-path
Dengan:
config-path
adalah jalur ke file konfigurasi notifikasi Anda.template-path
adalah jalur ke file template notifiers Anda. File template notifiers berisi template JSON yang dihosting di Cloud Storage dan merepresentasikan pesan notifikasi Anda. Anda dapat menyertakan file template notifikasi sebagai jalur menggunakan variabel ini atau dalam kolomuri
file konfigurasi notifikasi.
Setelah menjalankan skrip, Anda akan melihat pesan berikut:
** NOTIFIER SETUP COMPLETE **
Notifikasi Anda kini telah disiapkan. Anda dapat melihat skrip lengkap di repositori cloud-build-notifiers atau menjalankan
./setup.sh --help
untuk mengetahui petunjuk penggunaan yang terkait dengan skrip.
HTTP
Menyiapkan
Bagian berikut menjelaskan langkah-langkah yang harus Anda selesaikan sebelum mengotomatiskan konfigurasi notifikasi untuk notifikasi Anda.
Mengaktifkan API
Enable the Cloud Build, Cloud Run, and Pub/Sub APIs.
Menulis file konfigurasi notifikasi
Tulis file konfigurasi notifikasi untuk mengonfigurasi notifikasi HTTP dan memfilter peristiwa build:
Dalam file konfigurasi notifikasi contoh berikut, kolom filter
menggunakan Common Expression Language dengan variabel yang tersedia, build
, untuk memfilter peristiwa build dengan status SUCCESS
:
apiVersion: cloud-build-notifiers/v1
kind: HTTPNotifier
metadata:
name: example-http-notifier
spec:
notification:
filter: build.status == Build.Status.SUCCESS
delivery:
# The `http(s)://` protocol prefix is required.
url: url
template:
type: golang
uri: gs://example-gcs-bucket/http.json
Dengan:
url
adalah variabel konfigurasi yang digunakan dalam contoh ini untuk menentukan URL untuk permintaan Anda.- url adalah URL yang ingin Anda tentukan sebagai server penerima.
- Kolom
uri
merujuk pada filehttp.json
. File ini merujuk ke template JSON yang dihosting di Cloud Storage dan merepresentasikan payload json ke endpoint webhook.
Untuk melihat contohnya, lihat file konfigurasi notifikasi untuk notifikasi HTTP.
Menjalankan skrip otomatisasi
Untuk mengotomatiskan konfigurasi notifikasi untuk notifikasi Anda:
Buat clone repositori cloud-build-notifiers.
Konfigurasi Google Cloud CLI dengan project ID dan region Anda:
gcloud config set project project-id gcloud config set run/region region
Dengan:
project-id
adalah Google Cloud project ID Anda.region
adalah region untuk men-deploy notifikasi.
Jalankan perintah berikut di root repositori:
./setup.sh http -t config-path
Dengan:
config-path
adalah jalur ke file konfigurasi notifikasi Anda.
Setelah menjalankan skrip, Anda akan melihat pesan berikut:
** NOTIFIER SETUP COMPLETE **
Notifikasi Anda kini telah disiapkan. Anda dapat melihat skrip lengkap di
repositori cloud-build-notifiers atau menjalankan ./setup.sh --help
untuk mengetahui petunjuk penggunaan yang terkait dengan skrip.
Google Chat
Menyiapkan
Bagian berikut menjelaskan langkah-langkah yang harus Anda selesaikan sebelum mengotomatiskan konfigurasi notifikasi untuk notifikasi Anda.
Mengaktifkan API
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Mendapatkan dan menyimpan kredensial
Membuat ruang di Google Chat.
Di dalam ruang yang dibuat, buat webhook masuk untuk memposting pesan dari Cloud Build ke Google Chat. URL Anda akan terlihat seperti berikut:
https://chat.googleapis.com/v1/spaces/...
Simpan URL webhook masuk Anda di Secret Manager:
Buka halaman Secret Manager di konsol Google Cloud :
Klik Buat secret.
Masukkan nama untuk rahasia Anda.
Di bagian Secret value, tambahkan URL webhook masuk untuk ruang Google Chat Anda.
Untuk menyimpan secret, klik Buat secret.
Menulis file konfigurasi notifikasi
Tulis file konfigurasi notifikasi untuk mengonfigurasi notifikasi Google Chat dan memfilter peristiwa build:
Dalam file konfigurasi notifikasi contoh berikut, kolom filter
menggunakan Common Expression Language dengan variabel yang tersedia, build
, untuk memfilter peristiwa build dengan status SUCCESS
:
apiVersion: cloud-build-notifiers/v1
kind: GoogleChatNotifier
metadata:
name: example-googlechat-notifier
spec:
notification:
filter: build.status == Build.Status.SUCCESS
delivery:
webhookUrl:
secretRef: webhook-url
secrets:
- name: webhook-url
value: projects/project-id/secrets/secret-name/versions/latest
Dengan:
webhook-url
adalah variabel konfigurasi yang digunakan dalam contoh ini untuk mereferensikan jalur URL webhook Google Chat yang disimpan di Secret Manager. Nama variabel yang Anda tentukan di sini harus cocok dengan kolomname
di bagiansecrets
.project-id
adalah ID project Google Cloud Anda.secret-name
adalah nama rahasia Anda yang berisi URL webhook Google Chat Anda.
Untuk melihat contohnya, lihat file konfigurasi notifikasi untuk notifikasi Google Chat.
Menjalankan skrip otomatisasi
Untuk mengotomatiskan konfigurasi notifikasi untuk notifikasi Anda:
Buat clone repositori cloud-build-notifiers.
Konfigurasi Google Cloud CLI dengan project ID dan region Anda:
gcloud config set project project-id gcloud config set run/region region
Dengan:
project-id
adalah Google Cloud project ID Anda.region
adalah region untuk men-deploy notifikasi.
Jalankan perintah berikut di root repositori:
./setup.sh googlechat config-path -s secret-name
Dengan:
config-path
adalah jalur ke file konfigurasi notifikasi Anda.secret-name
adalah nama secret Anda yang disimpan di Secret Manager.
Setelah menjalankan skrip, Anda akan melihat pesan berikut:
** NOTIFIER SETUP COMPLETE **
Notifikasi Anda kini telah disiapkan. Anda dapat melihat skrip lengkap di
repositori cloud-build-notifiers atau menjalankan ./setup.sh --help
untuk mengetahui petunjuk penggunaan yang terkait dengan skrip.
Masalah GitHub
Menyiapkan
Bagian berikut menjelaskan langkah-langkah yang harus Anda selesaikan sebelum mengotomatiskan konfigurasi notifikasi untuk notifikasi Anda.
Mengaktifkan API
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Mendapatkan dan menyimpan kredensial
Buat GitHub Personal Access Token:
- Buka setelan GitHub untuk membuat token baru.
Pilih cakupan
repo
.Klik Buat token.
Simpan token Anda di Secret Manager:
Buka halaman Secret Manager di konsol Google Cloud :
Klik Buat secret.
Masukkan nama untuk rahasia Anda.
Di bagian Secret value, tambahkan token GitHub Anda.
Untuk menyimpan secret, klik Buat secret.
Menulis file konfigurasi template
Tulis file konfigurasi template untuk menjelaskan format Masalah GitHub yang dibuat:
Dalam file konfigurasi template contoh berikut, kolom title
dan body
menggunakan variabel penggantian dari build:
{
"title": "Build {{.Build.BuildTriggerId}}: {{.Build.Status}}",
"body": "[{{.Build.ProjectId}}] {{.Build.BuildTriggerId}} status: **{{.Build.Status}}**\n\n[View Logs]({{.Build.LogUrl}})"
}
Untuk melihat contohnya, lihat file konfigurasi template untuk notifikasi Masalah GitHub.
Kolom tambahan dapat ditetapkan dari parameter isi yang tersedia dari endpoint GitHub API untuk membuat masalah.
Menulis file konfigurasi notifikasi
Tulis file konfigurasi notifikasi untuk mengonfigurasi notifikasi Google Chat dan memfilter peristiwa build:
Dalam file konfigurasi notifikasi contoh berikut, kolom filter
menggunakan Common Expression Language dengan variabel yang tersedia, build
, untuk memfilter peristiwa build dengan status SUCCESS
:
apiVersion: cloud-build-notifiers/v1
kind: GitHubIssuesNotifier
metadata:
name: example-githubissues-notifier
spec:
notification:
filter: build.status == Build.Status.FAILURE
template:
type: golang
uri: gs://project-id-notifiers-config/template-file-name
delivery:
githubToken:
secretRef: github-token
githubRepo: myuser/myrepo
secrets:
- name: github-token
value: projects/project-id/secrets/secret-name/versions/latest
Dengan:
githubToken
adalah variabel konfigurasi yang digunakan dalam contoh ini untuk mereferensikan token GitHub yang disimpan di Secret Manager. Nama variabel yang Anda tentukan di sini harus cocok dengan kolomname
di bagiansecrets
.project-id-notifiers-config
adalah lokasi tempat template Anda akan diupload, dan bucket akan dibuat jika belum ada.template-file-name
adalah nama file template Anda.myuser/myrepo
adalah nama repo tempat masalah akan dibuat.project-id
adalah ID project Google Cloud Anda.secret-name
adalah nama secret Anda yang berisi token GitHub Anda.
Untuk melihat contohnya, lihat file konfigurasi notifikasi untuk notifikasi Google Chat.
Untuk mengetahui kolom tambahan yang dapat Anda gunakan untuk memfilter, lihat resource Build. Untuk contoh pemfilteran tambahan, lihat Menggunakan CEL untuk memfilter peristiwa build.
Menjalankan skrip otomatisasi
Untuk mengotomatiskan konfigurasi notifikasi untuk notifikasi Anda:
Buat clone repositori cloud-build-notifiers.
Konfigurasi Google Cloud CLI dengan project ID dan region Anda:
gcloud config set project project-id gcloud config set run/region region
Dengan:
project-id
adalah Google Cloud project ID Anda.region
adalah region untuk men-deploy notifikasi.
Jalankan perintah berikut di root repositori:
./setup.sh githubissues config-path -t template-path -s secret-name
Dengan:
config-path
adalah jalur ke file konfigurasi notifikasi Anda.template-path
adalah jalur ke file template notifiers Anda. File template notifiers berisi template JSON yang dihosting di Cloud Storage dan merepresentasikan pesan notifikasi Anda. Anda dapat menyertakan file template notifikasi sebagai jalur menggunakan variabel ini atau dalam kolomuri
file konfigurasi notifikasi.secret-name
adalah nama secret Anda yang disimpan di Secret Manager.
Setelah menjalankan skrip, Anda akan melihat pesan berikut:
** NOTIFIER SETUP COMPLETE **
Notifikasi Anda kini telah disiapkan. Anda dapat melihat skrip lengkap di
repositori cloud-build-notifiers atau menjalankan ./setup.sh --help
untuk mengetahui petunjuk penggunaan yang terkait dengan skrip.
Langkah berikutnya
- Pelajari notifikasi Cloud Build.
- Pelajari cara berlangganan notifikasi build.
- Pelajari cara menulis file konfigurasi build Cloud Build.