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 menunggu persetujuan, 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

  • Enable the Cloud Build API.

    Enable the API

  • Instal Google Cloud CLI.

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

Memberikan izin

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

Untuk menambahkan peran Cloud Build Approver:

  1. Buka halaman IAM di konsol Google Cloud.

    Buka halaman IAM

  2. Klik Grant access.

    Anda akan melihat panel Berikan akses.

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

    Anda harus menambahkan satu atau beberapa akun utama di bagian ini. Jika Anda menambahkan diri sebagai prinsipal, perhatikan bahwa Anda masih 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 konsol Google Cloud:

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

    Buka halaman Dasbor Cloud Build

  2. Jika memiliki build yang harus disetujui, Anda akan melihat pesan di bagian atas halaman dengan jumlah build yang menunggu persetujuan Anda. Di sebelah kanan pesan, klik Lihat Build 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 Setujui 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 Tampilkan opsi tambahan untuk memasukkan URL.

  6. Di kotak dialog, klik Setujui 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 Mengatur build berdasarkan kebijakan organisasi.

gcloud

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

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

Ganti nilai placeholder dalam perintah di atas dengan yang berikut ini:

  • 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 untuk membuat pemicu.

Menolak build

Konsol

Untuk menolak build yang tertunda di konsol Google Cloud:

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

    Buka halaman Dasbor Cloud Build

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

  3. Anda dapat memilih beberapa build untuk ditolak atau satu build individual 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:

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

Ganti nilai placeholder dalam perintah di atas dengan yang berikut ini:

  • 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 notifikasi Cloud Build untuk menerima notifikasi tentang build yang tertunda menggunakan notifikasi yang dikelola Cloud Build, seperti server Slack atau SMTP, atau dengan membuat 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 notifikasi untuk memfilter build dengan status TERTUNDA. Tindakan ini akan mengirimkan notifikasi tentang build yang menunggu persetujuan. Dalam contoh file konfigurasi 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 notifikasi untuk notifikasi SMTP.

  3. Untuk men-deploy notifikasi, jalankan perintah gcloud run di terminal Anda. Contoh berikut men-deploy 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
    

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

Langkah selanjutnya