Anda dapat mengintegrasikan Cloud Deploy dengan beberapa sistem lain yang Anda andalkan untuk pengiriman software. Halaman ini menjelaskan cara mengintegrasikan Cloud Deploy dengan:
- Alat pengujian
- Pengelolaan alur kerja
Lihat Mengintegrasikan dengan sistem CI untuk mempelajari cara memanggil Cloud Deploy dari pipeline CI Anda.
Sebelum memulai
Petunjuk di halaman ini mengasumsikan bahwa Anda telah memenuhi ketentuan berikut:
Anda telah mengaktifkan API yang berlaku
Anda memiliki minimal satu pipeline pengiriman yang ditentukan dan terdaftar dengan Cloud Deploy.
Anda memiliki setidaknya satu target yang ditentukan, dan pipeline pengiriman mereferensikan target tersebut.
Anda telah menyiapkan notifikasi Pub/Sub untuk menerima notifikasi dari topik berikut:
clouddeploy-operations
clouddeploy-approvals
Mengintegrasikan dengan pengujian otomatis
Anda dapat menggunakan Cloud Deploy dengan Pub/Sub untuk mengintegrasikan pengujian dengan pipeline pengiriman Anda, sehingga Anda dapat mempromosikan rilis secara otomatis, untuk pengiriman berkelanjutan.
Anda juga dapat menggunakan anotasi pada peluncuran untuk menyediakan link ke hasil pengujian. Untuk mengetahui informasi selengkapnya, lihat Menggunakan label dan anotasi dengan Cloud Deploy.
Menggunakan Pub/Sub untuk mengotomatiskan promosi
Proses pesan Pub/Sub dari topik
clouddeploy-operations
.Pesan ini berisi atribut berikut:
Action: SUCCEED
ResourceType: Rollout
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
Saat Anda menerima notifikasi bahwa deployment telah berhasil, jalankan pengujian pada aplikasi yang di-deploy.
Setelah pengujian Anda berhasil, panggil Cloud Deploy untuk secara 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 menghilangkan tanda 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 tidak dapat diubah. Jadi, jika Anda menambahkan anotasi status, Anda tidak akan dapat memperbarui status tersebut pada peluncuran yang sama di lain waktu.
Menggunakan anotasi untuk memberikan akses ke hasil pengujian
Jika Anda memiliki URL yang mengarah ke tempat hasil pengujian dapat diakses, Anda dapat
memberikan URL tersebut sebagai anotasi pada peluncuran, menggunakan tanda --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.
Berintegrasi 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
memberi tahu sistem Anda saat persetujuan
diperlukan untuk peluncuran. Sistem alur kerja eksternal Anda kemudian dapat bekerja secara ajaib 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:
Mewajibkan persetujuan pada target.
Dalam definisi untuk target tersebut, sertakan
requireApproval: true
.Untuk menggunakan pesan tersebut, berlanggananlah ke topik Pub/Sub
clouddeploy-approvals
, dan siapkan sistem pengelolaan alur kerja Anda.Saat sistem pengelolaan alur kerja Anda menerima pesan dari topik
clouddeploy-approvals
yang menyertakan"Action": "Required"
, sistem akan memulai alur kerja persetujuan yang dikonfigurasi sesuai dengan persyaratan organisasi Anda.Pesan ini 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 akan 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_NAME
Perintah untuk menolak peluncuran adalah sebagai berikut:
gcloud deploy rollouts reject ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME
dengan:
ROLLOUT
adalah nama peluncuran yang disetujui.
PIPELINE_NAME
adalah pipeline pengiriman yang mengelola penyebaran aplikasi Anda.
RELEASE_NAME
adalah nama rilis yang terkait dengan peluncuran ini.
REGION
adalah wilayah tempat pipeline pengiriman berjalan.
Berikut contohnya:
gcloud deploy rollouts approve test-rollout --delivery-pipeline=web-app --release=test-release --region=us-central1