Mengatur build berdasarkan persetujuan

Cloud Build memungkinkan Anda mengonfigurasi pemicu yang tidak langsung mengeksekusi build, tetapi menandai build sebagai tertunda hingga disetujui. Jika pengguna dengan izin menyetujui build yang tertunda, build akan dimulai. Jika persetujuan ditolak, build tidak akan dimulai.

Halaman ini menjelaskan cara menyetujui atau menolak build secara manual. Untuk mempelajari cara mengonfigurasi pemicu yang memerlukan persetujuan, lihat Membuat pemicu build.

Sebelum memulai

  • Aktifkan Cloud Build API.

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan peran.

    Mengaktifkan API

  • Instal Google Cloud CLI.

  • Jika belum, buat pemicu build yang dikonfigurasi untuk memerlukan persetujuan.

Memberikan izin

Jika pengguna memiliki peran Editor Cloud Build, pengguna tersebut memiliki izin untuk mengupdate pemicu agar memerlukan atau tidak memerlukan persetujuan. Untuk mempelajari izin Cloud Build lebih lanjut, lihat IAM dan izin. Agar dapat memberikan izin kepada pengguna untuk menyetujui build dalam project Anda, pengguna harus memiliki peran Cloud Build Approver.

Untuk menambahkan peran Cloud Build Approver:

  1. Buka halaman IAM di Google Cloud konsol.

    Buka halaman IAM

  2. Klik Grant access.

    Anda akan melihat panel Grant access.

  3. Di bagian Add principals, tambahkan pengguna untuk memberi mereka izin memberikan persetujuan untuk build yang tertunda dalam project Anda.

    Anda harus menambahkan satu atau beberapa akun utama di bagian ini. Jika Anda menambahkan diri Anda sebagai akun utama, perhatikan bahwa Anda tetap harus menyetujui build yang tertunda secara manual jika pemicu Anda dibatasi oleh persetujuan.

  4. Di bagian Assign roles, pilih Cloud Build > Cloud Build Approver.

Pengguna yang Anda tentukan kini memiliki akses untuk menyetujui atau menolak build yang tertunda.

Menyetujui build

Konsol

Untuk menyetujui build yang tertunda di Google Cloud konsol:

  1. Buka halaman Cloud Build Dashboard di Google Cloud konsol.

    Buka halaman Dasbor Cloud Build

  2. Jika Anda memiliki build yang akan disetujui, Anda akan melihat pesan di bagian atas halaman dengan jumlah build yang menunggu persetujuan Anda. Di sebelah kanan pesan, klik View Builds untuk melihat daftar build yang menunggu persetujuan Anda.

  3. Klik kotak centang build yang ingin Anda setujui. Anda dapat memilih beberapa build untuk disetujui atau satu build untuk disetujui.

  4. Di bagian atas halaman, klik Approve untuk menyetujui build yang dipilih.

  5. Sebelum build dimulai, Anda akan melihat kotak dialog Approve build. Di kotak dialog, Anda dapat menambahkan pesan opsional dan URL yang akan ditampilkan bersama dengan persetujuan build. Untuk menyertakan URL, klik Show additional options untuk memasukkan URL.

  6. Di kotak dialog, klik Approve untuk menyetujui build.

Setelah Anda menyetujui, build akan segera dimulai. Jika kebijakan organisasi (constraints/cloudbuild.allowedIntegrations) menolak akses ke repositori yang terhubung, kebijakan tersebut akan mengganti persetujuan. Untuk mempelajari lebih lanjut, lihat Membatasi build pada kebijakan organisasi.

gcloud

Untuk menyetujui build yang tertunda menggunakan gcloud commands, jalankan perintah berikut di jendela terminal Anda:

gcloud builds approve BUILD_ID \
  --project=PROJECT_ID \
  --url=URL \
  --comment=COMMENT

Ganti nilai placeholder dalam perintah di atas dengan nilai berikut:

  • BUILD_ID adalah ID build yang ingin Anda setujui.
  • PROJECT_ID adalah project ID Anda.
  • [Opsional] URL adalah URL yang berisi informasi tentang persetujuan, seperti link ke tiket JIRA.
  • [Opsional] COMMENT adalah pesan yang ingin Anda tampilkan setelah persetujuan build.

Setelah Anda menyetujui, build akan segera dimulai. Jika kebijakan organisasi untuk menentukan build untuk integrasi yang diizinkan (constraints/cloudbuild.allowedIntegrations) ditetapkan, kebijakan tersebut akan mengganti persetujuan. Untuk mempelajari lebih lanjut, lihat Menerapkan kebijakan organisasi ke pemicu build.

Menolak build

Konsol

Untuk menolak build yang tertunda di Google Cloud konsol:

  1. Buka halaman Cloud Build Dashboard di Google Cloud konsol.

    Buka halaman Dasbor Cloud Build

  2. Jika Anda memiliki build yang akan disetujui, Anda akan melihat pesan di bagian atas halaman dengan jumlah build yang menunggu persetujuan Anda. Di sebelah kanan pesan, klik View Builds untuk melihat daftar build yang menunggu persetujuan Anda.

  3. Anda dapat memilih beberapa build untuk ditolak atau satu build untuk ditolak. Klik kotak centang build yang ingin Anda tolak.

  4. Klik Reject di bagian atas halaman untuk menolak build.

Jika Anda menolak build, build tidak akan dimulai.

gcloud

Untuk menolak build yang tertunda menggunakan gcloud commands, jalankan perintah berikut di jendela terminal Anda:

gcloud builds reject BUILD_ID \
  --project=PROJECT_ID \
  --url=URL \
  --comment=COMMENT

Ganti nilai placeholder dalam perintah di atas dengan nilai berikut:

  • BUILD_ID adalah ID build yang ingin Anda tolak.
  • PROJECT_ID adalah project ID Anda.
  • [Opsional] URL adalah URL yang berisi informasi tentang penolakan, seperti link ke tiket JIRA.
  • [Opsional] COMMENT adalah pesan yang ingin Anda tampilkan setelah penolakan build.

Jika Anda menolak build, build tidak akan pernah dimulai.

Menerima notifikasi untuk build yang menunggu persetujuan

Anda dapat menggunakan pemberi notifikasi Cloud Build untuk menerima notifikasi tentang build yang tertunda menggunakan pemberi notifikasi yang dikelola Cloud Build, seperti Slack atau SMTP server, atau dengan membuat pemberi notifikasi Anda sendiri.

Untuk mengonfigurasi notifikasi:

  1. Ikuti petunjuk di salah satu halaman berikut untuk mengonfigurasi notifikasi untuk layanan yang Anda inginkan:

  2. Saat mengonfigurasi notifikasi menggunakan salah satu halaman di atas, Anda harus mengonfigurasi pemberi notifikasi untuk memfilter build dengan status PENDING. Tindakan ini akan mengirimkan notifikasi kepada Anda tentang build yang menunggu persetujuan. Dalam contoh file konfigurasi pemberi notifikasi SMTP berikut, kolom filter menggunakan Common Expression Language (CEL) untuk memfilter peristiwa build dengan status PENDING:

    apiVersion: cloud-build-notifiers/v1
    kind: SMTPNotifier
    metadata:
      name: example-smtp-notifier
    spec:
      notification:
        filter: build.status == Build.Status.PENDING
        delivery:
          server: example.gmail.com
          port: 0000
          sender: sender@example.com
          ...
    

    Untuk melihat contoh lengkapnya, lihat file konfigurasi pemberi notifikasi untuk pemberi notifikasi SMTP.

  3. Untuk men-deploy pemberi notifikasi, jalankan perintah gcloud run di terminal Anda. Contoh berikut men-deploy pemberi notifikasi SMTP menggunakan Cloud Run.

    gcloud run deploy example.gmail.com \
      --image=us-east1-docker.pkg.dev/gcb-release/cloud-build-notifiers/smtp:latest \
      --update-env-vars=CONFIG_PATH=smtp.yaml, PROJECT_ID=my-project
    

Anda kini akan menerima notifikasi untuk build yang tertunda ke layanan Anda.

Langkah berikutnya