Anda dapat mengintegrasikan Cloud Deploy dengan beberapa sistem lain yang Anda andalkan 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 sudah memenuhi kondisi berikut:
Anda telah mengaktifkan API yang berlaku
Anda memiliki setidaknya satu pipeline pengiriman yang ditentukan dan terdaftar dengan Cloud Deploy.
Anda memiliki minimal 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 deployment, sehingga Anda dapat mempromosikan rilis secara otomatis, untuk deployment 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 berisi atribut berikut:
Action: SUCCEED
ResourceType: Rollout
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
Saat Anda menerima notifikasi bahwa deployment telah berhasil, jalankan pengujian di 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 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 dapat memperbarui status tersebut di peluncuran yang sama nanti.
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 roles/clouddeploy.approver
yang telah ditetapkan.
Untuk menyiapkan alur kerja persetujuan eksternal:
Memerlukan 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 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 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