Mengotomatiskan build dengan Cloud Build

Topik ini menjelaskan cara mengotomatiskan build menggunakan Cloud Build dan Cloud Source Repositories.

Anda dapat mengonfigurasi Cloud Build untuk otomatis membuat image baru setiap kali pengguna mengirimkan perubahan ke file yang disimpan di Cloud Source Repositories. Peristiwa yang memulai build otomatis disebut pemicu build. Pemicu ini dapat membantu memastikan image container Anda selalu diupdate. Anda juga dapat menggunakannya untuk membuat dan menguji cabang fitur.

Pemicu build dapat melakukan build berdasarkan Dockerfile atau file konfigurasi build.

Menggunakan Dockerfile

Untuk menggunakan Dockerfile bagi konfigurasi build, Anda harus menentukan direktori Dockerfile dan memberikan nama untuk image yang dihasilkan. Untuk mengetahui detail tentang pembuatan Dockerfile, lihat dokumentasi Docker.

Setelah memberikan Dockerfile dan nama image, Anda akan melihat pratinjau perintah docker build yang dijalankan build Anda dan ringkasan konfigurasi pemicu.

Menggunakan file konfigurasi build

Untuk menggunakan file konfigurasi build untuk konfigurasi build, Anda harus memberikan lokasi file konfigurasi build.

Setelah menyetel lokasi, Anda akan melihat ringkasan pemicu.

Sebelum memulai

Informasi tambahan

  • Pemicu build menggunakan clone dangkal repositori. Dengan clone dangkal, hanya satu commit yang memicu build otomatis yang di-checkout di ruang kerja. Untuk mengetahui informasi selengkapnya, dan mempelajari cara menyertakan lebih banyak histori repositori Anda, lihat Memperdalam clone.

  • Jika Anda menggunakan penyedia Git yang dihosting lain, seperti di GitHub atau Bitbucket, dan masih perlu mencerminkan repositori ke Cloud Source Repositories, Anda harus memiliki izin cloudbuilds.builds.create untuk project Google Cloudyang sedang Anda kerjakan. Izin ini biasanya diberikan melalui peran cloudbuild.builds.editor.

    Saat menyiapkan pemicu build dengan repositori eksternal untuk pertama kalinya, Anda harus menyiapkan otorisasi dengan repositori tersebut. Untuk mengetahui informasi selengkapnya, lihat Menambahkan repositori sebagai repositori jarak jauh.

    Setelah Anda menyiapkan repositori eksternal, Cloud Source Repositories akan membuat duplikat repositori Anda.

  • Untuk mengetahui informasi tentang kuota dan batas Cloud Build, lihat Kuota dan batas dalam dokumentasi Cloud Build.

Membuat pemicu build

Konsol

  1. Buka halaman Pemicu di Google Cloud konsol.

    Buka halaman Pemicu

  2. Pilih project Anda dari menu drop-down pemilih project di bagian atas halaman.

  3. Klik Buka.

  4. Klik Create trigger.

  5. Masukkan setelan pemicu berikut:

    • Nama: Masukkan nama untuk pemicu Anda.

    • Deskripsi (opsional): Masukkan deskripsi untuk pemicu Anda.

    • Peristiwa: Pilih peristiwa repositori untuk memanggil pemicu Anda.

      • Push ke cabang: Tetapkan pemicu untuk memulai build pada commit ke cabang tertentu.

      • Push tag baru: Tetapkan pemicu untuk memulai build pada commit yang berisi tag tertentu.

    • Sumber: Pilih repositori dan cabang atau tag yang sesuai untuk memantau peristiwa.

      Saat build Anda dieksekusi, konten repositori Anda akan disalin ke /workspace, direktori kerja default yang digunakan oleh Cloud Build. Pelajari lebih lanjut direktori kerja di halaman ringkasan Konfigurasi build.

      • Cabang atau Tag: Tentukan ekspresi reguler dengan cabang atau nilai tag yang akan dicocokkan. Garis miring (/) tidak dapat digunakan dalam tag. Untuk mengetahui informasi selengkapnya tentang sintaksis ekspresi reguler yang dapat diterima, lihat sintaksis RE2.
    • Konfigurasi: Pilih file konfigurasi build yang ada di repositori jarak jauh Anda atau buat file konfigurasi build inline untuk digunakan dalam build Anda.

      • Type: Pilih jenis konfigurasi yang akan digunakan untuk build Anda.
        • File konfigurasi Cloud Build (yaml atau json): Gunakan file konfigurasi build untuk konfigurasi Anda.
        • Dockerfile: Gunakan Dockerfile untuk konfigurasi Anda.
        • Buildpacks: Gunakan buildpacks untuk konfigurasi Anda.
      • Lokasi: Tentukan lokasi untuk konfigurasi Anda.

        • Repositori: Jika file konfigurasi Anda berada di repositori jarak jauh, berikan lokasi file konfigurasi build, direktori Dockerfile, atau direktori buildpack. Jika jenis konfigurasi build Anda adalah Dockerfile atau buildpack, Anda harus memberikan nama untuk image yang dihasilkan dan secara opsional, waktu tunggu untuk build Anda. Setelah memberikan nama image Dockerfile atau buildpack, Anda akan melihat pratinjau perintah docker build atau pack yang akan dijalankan build Anda.
        • Variabel lingkungan buildpack (opsional): Jika Anda memilih buildpacks sebagai jenis konfigurasi, klik Tambahkan variabel lingkungan paket untuk menentukan variabel lingkungan dan nilai buildpack. Untuk mempelajari lebih lanjut variabel lingkungan buildpack, lihat Variabel lingkungan.
        • Inline: Jika Anda memilih File konfigurasi Cloud Build (yaml atau json) sebagai opsi konfigurasi, Anda dapat menentukan konfigurasi build secara inline. Klik Open Editor untuk menulis file konfigurasi build di Google Cloud konsol menggunakan sintaksis YAML atau JSON. Klik Selesai untuk menyimpan konfigurasi build Anda.

    • Akun layanan: Pilih akun layanan yang akan digunakan saat memanggil pemicu Anda. Jika Anda tidak memilih akun layanan, akun layanan Cloud Build default akan digunakan.

  6. Klik Buat untuk menyimpan pemicu build Anda.

gcloud

Jalankan perintah berikut:

    gcloud beta builds triggers create cloud-source-repositories \
    --repo=REPO_NAME \
    --branch-pattern=BRANCH_PATTERN \ # or --tag-pattern=TAG_PATTERN
    --build-config=BUILD_CONFIG_FILE \
    --service-account=SERVICE_ACCOUNT \
    --require-approval

Dengan:

  • REPO_NAME adalah nama repositori Anda.
  • BRANCH_PATTERN adalah nama cabang di repositori Anda untuk memanggil build.
  • TAG_PATTERN adalah nama tag di repositori Anda untuk memanggil build.
  • BUILD_CONFIG_FILE adalah jalur ke file konfigurasi build Anda.
  • SERVICE_ACCOUNT (pratinjau) adalah email yang terkait dengan akun layanan Anda. Jika Anda tidak menyertakan tanda ini, akun layanan Cloud Build default akan digunakan.
  • [Opsional] --require-approval adalah tanda yang disertakan untuk mengonfigurasi pemicu agar memerlukan persetujuan.

Untuk mengetahui daftar lengkap flag, lihat referensi gcloud tentang cara membuat pemicu untuk Cloud Source Repositories.

Setelah menjalankan perintah gcloud untuk membuat pemicu menggunakan Cloud Source Repositories, Anda akan melihat output yang mirip dengan berikut:

  NAME         CREATE_TIME                STATUS
  trigger-001  2019-10-30T20:45:03+00:00

Melihat pemicu build

Untuk melihat pemicu di konsol Google Cloud , buka halaman Pemicu Cloud Build.

Untuk melihat pemicu untuk project tertentu di Cloud Source Repositories, klik Settings di kanan atas, lalu klik Cloud Build Triggers.

Melewati pemicu build

Dalam beberapa kasus, Anda mungkin ingin mengubah kode sumber, tetapi tidak ingin memicu build, misalnya, saat Anda memperbarui dokumentasi atau file konfigurasi.

Dalam kasus tersebut, Anda dapat menyertakan [skip ci] atau [ci skip] dalam pesan commit, dan build tidak akan dipicu.

Contoh:

Author: A User <auser@example.com>
Date:   Tue Apr 3 12:03:35 2018 -0700

Fixed customer affecting issue. [skip ci]

Jika Anda ingin menjalankan build pada commit tersebut nanti, gunakan tombol Run trigger.

Memperdalam clone

Untuk membangun sumber Anda di repositori Git, Cloud Source Repositories melakukan shallow clone repositori. Saat melakukan clone dangkal, Cloud Source Repositories hanya akan melakukan checkout dari ruang kerja untuk satu commit yang memicu build, lalu melakukan build dari sumber tersebut. Cloud Source Repositories tidak melakukan checkout pada cabang atau histori lainnya. Hal ini dilakukan untuk efisiensi. Build tidak tertunda saat Cloud Source Repositories mengambil seluruh repositori dan histori hanya untuk membangun dari satu commit.

Untuk menyertakan lebih banyak histori repo dalam build, tambahkan langkah build dalam file konfigurasi build untuk "membatalkan" clone. Contoh:

steps:
- name: gcr.io/cloud-builders/git
  args: ['fetch', '--unshallow']
...

Untuk mengetahui informasi selengkapnya tentang git fetch, lihat referensi git. Untuk mengetahui petunjuk tentang cara menulis file konfigurasi build, lihat Ringkasan konfigurasi build.

Langkah berikutnya