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

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

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

    Pesan berisi atribut berikut:

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

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

  1. Memerlukan persetujuan pada target.

    Dalam definisi untuk target tersebut, sertakan requireApproval: true.

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

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

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