Anda dapat mengintegrasikan Cloud Deploy dengan beberapa sistem lain yang Anda gunakan untuk pengiriman software. Halaman ini menjelaskan cara mengintegrasikan Cloud Deploy dengan hal berikut:
- Alat pengujian
- Pengelolaan alur kerja
Lihat Mengintegrasikan dengan sistem CI Anda untuk mempelajari cara memanggil Cloud Deploy dari pipeline CI Anda.
Sebelum memulai
Petunjuk di halaman ini mengasumsikan bahwa Anda telah memenuhi kondisi berikut:
Anda telah mengaktifkan API yang berlaku
Anda memiliki setidaknya satu pipeline pengiriman yang ditentukan dan terdaftar di Cloud Deploy.
Anda memiliki setidaknya satu target yang ditentukan, dan pipeline pengiriman Anda mereferensikan target tersebut.
Anda telah menyiapkan notifikasi Pub/Sub untuk menerima notifikasi dari topik berikut:
clouddeploy-operationsclouddeploy-approvals
Mengintegrasikan dengan pengujian otomatis
Anda dapat menggunakan Cloud Deploy dengan Pub/Sub untuk mengintegrasikan pengujian dengan pipeline pengiriman, sehingga Anda dapat mempromosikan rilis secara otomatis, untuk pengiriman berkelanjutan.
Anda juga dapat menggunakan anotasi pada peluncuran untuk memberikan link ke hasil pengujian. Untuk mengetahui informasi selengkapnya, lihat Menggunakan label dan anotasi dengan Cloud Deploy.
Menggunakan Pub/Sub untuk mengotomatiskan promosi
Dengarkan pesan Pub/Sub dari topik
clouddeploy-operations.Pesan tersebut berisi atribut berikut:
Action: SUCCEEDResourceType: RolloutResource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
Saat Anda menerima notifikasi bahwa deployment telah berhasil, jalankan pengujian pada aplikasi yang di-deploy.
Saat pengujian berhasil, panggil Cloud Deploy untuk otomatis mempromosikan ke tahap berikutnya:
gcloud deploy releases promote RELEASE_NAME \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --annotations=KEY=VALUE,...dengan:
RELEASE_NAME
adalah nama rilis. Nilai ini wajib diisi.
PIPELINE_NAME
adalah nama pipeline pengiriman yang mengelola rilis ini. Nilai ini wajib diisi.
REGION
adalah region tempat pipeline berjalan. Jika telah menetapkan properti
deploy/region, Anda dapat menghapus flag ini.KEY=VALUE,...
adalah daftar satu atau beberapa pasangan string nilai kunci yang dipisahkan koma, yang dapat berisi informasi tentang hasil pengujian dan informasi pengujian lainnya. Berikut contohnya:
gcloud deploy releases promote --annotations="from_target=test,status=stable"Anotasi pada peluncuran bersifat tidak dapat diubah, jadi jika Anda menambahkan anotasi status, Anda tidak dapat memperbarui status tersebut pada peluncuran yang sama.
Menggunakan anotasi untuk memberikan akses ke hasil pengujian
Jika memiliki URL yang mengarah ke tempat hasil pengujian dapat diakses, Anda dapat memberikan URL tersebut sebagai anotasi pada peluncuran, menggunakan flag --annotations.
Berikut contohnya:
gcloud deploy releases promote --delivery-pipeline=my-demo-app-1 --region=us-central1 --project=my-demo-app-1-project --release=test-release-001 --annotations="test_results_url=https://example.com/results/my-demo-app-test-results-dev"
Untuk mengetahui informasi selengkapnya, lihat Menggunakan label dan anotasi dengan Cloud Deploy.
Mengintegrasikan dengan pengelolaan alur kerja pihak ketiga
Cloud Deploy memublikasikan pesan operasional ke Pub/Sub. Alat pengelolaan alur kerja Anda dapat berlangganan topik Pub/Sub ini dan menggunakannya untuk memicu alur kerja tertentu.
Untuk persetujuan
Topik clouddeploy-approvals akan memberi tahu sistem Anda saat persetujuan diperlukan untuk peluncuran. Sistem alur kerja eksternal Anda kemudian dapat melakukan tugasnya untuk mendapatkan persetujuan, lalu memanggil gcloud deploy rollouts approve.
Akun yang mengeluarkan perintah rollouts approve harus memiliki peran IAM yang telah ditetapkan roles/clouddeploy.approver.
Untuk menyiapkan alur kerja persetujuan eksternal:
Wajibkan persetujuan pada target.
Dalam definisi untuk target tersebut, sertakan
requireApproval: true.Untuk menggunakan pesan, berlangganan topik Pub/Sub
clouddeploy-approvals, dan siapkan sistem pengelolaan alur kerja Anda.Saat sistem pengelolaan alur kerja Anda menerima pesan dari topik
clouddeploy-approvalsyang menyertakan"Action": "Required", sistem tersebut akan memulai alur kerja persetujuan, yang dikonfigurasi sesuai dengan persyaratan organisasi Anda.Pesan tersebut juga menyertakan referensi ke peluncuran yang akan disetujui, dalam format berikut:
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...Output alur kerja persetujuan adalah persetujuan atau penolakan peluncuran.
Sistem pengelolaan alur kerja Anda menampilkan persetujuan atau penolakan ke Cloud Deploy dalam bentuk perintah berikut:
Perintah untuk persetujuan adalah sebagai berikut:
gcloud deploy rollouts approve ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAMEPerintah untuk menolak peluncuran adalah sebagai berikut:
gcloud deploy rollouts reject ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAMEdengan:
ROLLOUT
adalah nama peluncuran yang persetujuannya diminta.
PIPELINE_NAME
adalah pipeline pengiriman yang mengelola deployment aplikasi Anda.
RELEASE_NAME
adalah nama rilis yang terkait dengan peluncuran ini.
REGION
adalah region tempat pipeline pengiriman berjalan.
Berikut contohnya:
gcloud deploy rollouts approve test-rollout --delivery-pipeline=web-app --release=test-release --region=us-central1