Mengotomatiskan build pada peristiwa repositori

Anda dapat mengonfigurasi pipeline Image Builder otomatis yang berjalan setiap kali Anda mengirim perubahan konfigurasi ke repositori Git, seperti mengirim ke main. Mengotomatiskan build pada peristiwa repositori memastikan bahwa Cloud Build segera memvalidasi, membangun, dan memublikasikan image OS kustom Anda ke Compute Engine dan Artifact Registry setelah peninjauan atau penggabungan kode.

Sebelum memulai

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk membuat pemicu peristiwa repositori, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Mengonfigurasi otomatisasi repositori

Anda dapat mengonfigurasi pemicu peristiwa repositori menggunakan gcloud CLI atau Terraform. Pilih salah satu tab berikut untuk mengonfigurasi pemicu repositori:

gcloud

Anda dapat membuat pemicu repositori otomatis menggunakan perintah gcloud builds triggers create dan menunjuk langsung ke link repositori generasi ke-2 yang terhubung (--repository).

gcloud builds triggers create repository \
    --name="TRIGGER_NAME" \
    --repository="projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/repositories/REPO_NAME" \
    --branch-pattern="^main$" \
    --build-config="CLOUDBUILD_YAML_PATH" \
    --service-account="projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL" \
    --substitutions="_GCS_WORKDIR=gs://STAGING_BUCKET/workdir/,_IMAGE_BUILDER_CONFIG_PATH=RECIPE_PATH,_SERVICE_ACCOUNT=projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL,_IMAGE_OUTPUT_PATH=image-builder/binaryOut" \
    --region=REGION \
    --project=PROJECT_ID

Ganti kode berikut:

  • TRIGGER_NAME: nama pemicu Anda, misalnya, git-push-custom-os-builder.
  • PROJECT_ID: project ID Anda.
  • REGION: region tempat koneksi repositori Anda dihosting dan tempat tugas pipeline penyesuaian image berjalan, misalnya, us-central1.
  • CONNECTION_NAME: nama koneksi Developer Connect Anda, misalnya, github-connection.
  • REPO_NAME: nama repositori Git yang ditautkan.
  • CLOUDBUILD_YAML_PATH: jalur relatif ke cloudbuild.yaml di direktori lokal Anda.
  • SERVICE_ACCOUNT_EMAIL: alamat email yang tepat dari akun layanan build Anda.
  • STAGING_BUCKET: nama bucket penyiapanworkdir Cloud Storage Anda.
  • RECIPE_PATH: jalur relatif ke imagebuilder.yaml di repositori Anda.

Terraform

Untuk mengonfigurasi pemicu repositori otomatis menggunakan Terraform, selesaikan langkah-langkah berikut:

  1. Tambahkan resource pemicu ke file konfigurasi main.tf Anda:

    resource "google_cloudbuild_trigger" "repository_trigger" {
      name        = "TRIGGER_NAME"
      location    = "REGION"
      project     = "PROJECT_ID"
      description = "Triggers custom OS image builds on repository push events"
    
      repository_event_config {
        repository = "projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/repositories/REPO_NAME"
        push {
          branch = "^main$"
        }
      }
    
      filename = "CLOUDBUILD_YAML_PATH"
    
      substitutions = {
        _GCS_WORKDIR               = "gs://STAGING_BUCKET/workdir/"
        _IMAGE_BUILDER_CONFIG_PATH = "RECIPE_PATH"
        _SERVICE_ACCOUNT           = "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL"
      }
    }
    

    Ganti kode berikut:

    • TRIGGER_NAME: nama pemicu Anda, misalnya, git-push-custom-os-builder.
    • PROJECT_ID: project ID Anda.
    • REGION: Cloud de Confiance region tempat koneksi repositori Anda dihosting, misalnya, us-central1.
    • CONNECTION_NAME: nama koneksi Developer Connect Anda, misalnya, github-connection.
    • REPO_NAME: nama repositori Git yang ditautkan.
    • CLOUDBUILD_YAML_PATH: jalur relatif ke cloudbuild.yaml di direktori lokal Anda.
    • STAGING_BUCKET: nama bucket penyiapan Cloud Storage Anda.
    • RECIPE_PATH: jalur relatif ke imagebuilder.yaml di repositori Anda.
    • SERVICE_ACCOUNT_EMAIL: alamat email akun layanan build Anda.
  2. Deploy konfigurasi Terraform yang telah diperbarui:

    terraform plan
    terraform apply
    

    Untuk meninjau struktur project infrastruktur Terraform multi-file yang lengkap, lihat Membuat dan mengelola pipeline menggunakan Terraform.

Langkah berikutnya