Mengintegrasikan Cloud Deploy dengan sistem lain

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:

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

  1. Proses pesan Pub/Sub dari topik clouddeploy-operations.

    Pesan ini berisi atribut berikut:

    • Action: SUCCEED
    • ResourceType: Rollout
    • Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
  2. Saat Anda menerima notifikasi bahwa deployment telah berhasil, jalankan pengujian pada aplikasi yang di-deploy.

  3. 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:

  1. Mewajibkan persetujuan pada target.

    Dalam definisi untuk target tersebut, sertakan requireApproval: true.

  2. Untuk menggunakan pesan tersebut, berlanggananlah ke topik Pub/Sub clouddeploy-approvals, dan siapkan sistem pengelolaan alur kerja Anda.

  3. 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.

  4. 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