Gerbang dibangun berdasarkan persetujuan

Dengan Cloud Build, Anda dapat mengonfigurasi pemicu yang tidak langsung menjalankan build, tetapi menandai build sebagai tertunda hingga disetujui. Jika pengguna yang memiliki 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

  • Enable the Cloud Build API.

    Enable the API

  • Instal Google Cloud CLI.

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

Memberikan izin

Jika pengguna memiliki peran Cloud Build Editor, ia memiliki izin untuk mengupdate pemicu guna mewajibkan atau tidak mewajibkan persetujuan. Untuk mempelajari izin Cloud Build lebih lanjut, lihat IAM dan izin. Untuk memberikan izin kepada pengguna untuk menyetujui build dalam project Anda, pengguna harus memiliki peran Cloud Build Approvalr.

Untuk menambahkan peran Cloud Build Approvalr:

  1. Buka halaman IAM di Konsol Google Cloud.

    Buka halaman IAM

  2. Klik Berikan akses.

    Anda akan melihat panel Berikan akses.

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

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

  4. Di bagian Tetapkan peran, pilih Cloud Build > Pemberi Persetujuan Cloud Build.

Pengguna yang Anda tentukan sekarang 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 Cloud Build Dashboard

  2. Jika memiliki build yang perlu disetujui, Anda akan melihat pesan di bagian atas halaman dengan jumlah build yang menunggu persetujuan. 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 Setujui untuk menyetujui build yang dipilih.

  5. Sebelum build dimulai, Anda akan melihat kotak dialog Setujui 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 menyetujuinya, 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 Kebijakan pembuatan gerbang berdasarkan 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 perintah 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 menyetujuinya, build akan segera dimulai. Jika kebijakan organisasi guna 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 tertunda di konsol Google Cloud:

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

    Buka halaman Cloud Build Dashboard

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

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

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

Jika Anda menolak build, build tersebut 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 perintah 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 tersebut 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 notifier 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 guna mengonfigurasi notifikasi untuk layanan yang diinginkan:

  2. Saat mengonfigurasi notifikasi menggunakan salah satu halaman di atas, Anda harus mengonfigurasi notifier untuk memfilter build dengan status PENDING. Anda akan menerima notifikasi tentang build yang menunggu persetujuan. Pada contoh file konfigurasi Pemberi tahu SMTP berikut, kolom filter menggunakan Common Expression Language (CEL) untuk memfilter peristiwa build dengan status TERTUNDA:

    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 lengkap, lihat file konfigurasi notifikasi untuk notifier SMTP.

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

Langkah selanjutnya