Topik ini menjelaskan cara mengotomatiskan build menggunakan Cloud Build dan Cloud Source Repositories.
Anda dapat mengonfigurasi Cloud Build untuk secara 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 bahwa gambar container Anda selalu yang terbaru. Anda juga dapat menggunakannya untuk membangun dan menguji cabang fitur.
Pemicu build dapat menjalankan build berdasarkan file konfigurasi build atau Dockerfile.
Menggunakan Dockerfile
Agar dapat menggunakan Dockerfile untuk konfigurasi build, Anda harus menentukan direktori Dockerfile dan memberikan nama untuk image yang dihasilkan. Untuk mengetahui detail tentang membuat Dockerfile, lihat dokumentasi Docker.
Setelah menyediakan Dockerfile dan nama image, Anda akan melihat pratinjau perintah docker build
yang dijalankan build Anda, serta ringkasan konfigurasi pemicunya.
Menggunakan file konfigurasi build
Agar dapat menggunakan file konfigurasi build untuk konfigurasi build, Anda harus menyediakan lokasi file konfigurasi build.
Setelah menetapkan lokasi, Anda akan melihat ringkasan pemicunya.
Sebelum memulai
Aktifkan Cloud Build API.
Pastikan Anda memiliki kode sumber di Cloud Source Repositories.
Pastikan Anda memiliki Dockerfile atau file konfigurasi build.
Jika menggunakan akun layanan selain akun layanan Cloud Build default, lihat halaman Cloud Build tentang Mengonfigurasi akun layanan yang ditentukan pengguna.
Informasi tambahan
Pemicu build menggunakan clone shallow repositori. Dengan clone shallow, hanya commit tunggal yang memicu build otomatis yang akan diperiksa di ruang kerja. Untuk mengetahui informasi selengkapnya dan mempelajari cara menyertakan histori repositori Anda lainnya, lihat Cloning tidak dangkal.
Jika menggunakan penyedia Git lain yang dihosting, seperti di GitHub atau Bitbucket, dan masih perlu menduplikasi repositori ke Cloud Source Repositories, Anda harus memiliki izin
cloudbuilds.builds.create
untuk project Google Cloud yang Anda gunakan. Izin ini biasanya diberikan melalui perancloudbuild.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 remote.
Setelah Anda menyiapkan repositori eksternal, Cloud Source Repositories akan membuat duplikat repositori Anda.
Untuk mengetahui informasi tentang kuota dan batas untuk Cloud Build, lihat Kuota dan batas dalam dokumentasi Cloud Build.
Membuat pemicu build
Konsol
Buka halaman Pemicu di Konsol Google Cloud.
Pilih project Anda dari menu drop-down pemilih project di bagian atas halaman.
Klik Buka.
Klik Create trigger.
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.
Kirim tag baru: Tetapkan pemicu untuk memulai build pada commit yang berisi tag tertentu.
Source: Pilih repositori dan cabang atau tag yang sesuai untuk memantau peristiwa.
- Repository: Dari daftar repositori yang tersedia, pilih repositori yang diinginkan. Untuk menghubungkan repositori baru, lihat Menghubungkan ke repositori sumber.
Saat build dijalankan, konten repositori Anda akan disalin ke
/workspace
, direktori kerja default yang digunakan oleh Cloud Build. Pelajari direktori kerja lebih lanjut di halaman Ringkasan konfigurasi build.- Branch atau Tag: Tentukan ekspresi reguler dengan nilai cabang atau
tag yang akan dicocokkan. Garis miring (
/
) tidak dapat digunakan dalam tag. Untuk mengetahui informasi selengkapnya mengenai sintaksis ekspresi reguler yang dapat diterima, lihat sintaksis RE2.
Konfigurasi: Pilih file konfigurasi build yang berada di repositori jarak jauh atau buat file konfigurasi build inline untuk digunakan pada build Anda.
- Type: Pilih jenis konfigurasi yang akan digunakan untuk build Anda.
- Cloud Build configuration file (yaml atau json): Menggunakan file konfigurasi build untuk konfigurasi Anda.
- Dockerfile: Gunakan
Dockerfile
untuk konfigurasi Anda. - Buildpacks: Gunakan buildpacks untuk konfigurasi Anda.
Location: Menentukan lokasi untuk konfigurasi Anda.
- Repositori: Jika file konfigurasi Anda berada di
repositori jarak jauh, berikan lokasi
file konfigurasi build, direktori
Dockerfile
, atau direktori buildpacks. Jika jenis konfigurasi build adalahDockerfile
atau buildpack, Anda harus memberi nama untuk image yang dihasilkan dan, jika perlu, waktu tunggu untuk build. Setelah memberikan nama imageDockerfile
atau buildpack, Anda akan melihat pratinjau perintahdocker build
ataupack
yang akan dijalankan build Anda. - Variabel lingkungan buildpack (opsional): Jika Anda
memilih
buildpacks
sebagai jenis konfigurasi, klik Tambahkan variabel lingkungan paket untuk menentukan variabel dan nilai lingkungan buildpack Anda. Untuk mempelajari variabel lingkungan buildpack lebih lanjut, lihat Variabel lingkungan. Inline: Jika memilih Cloud Build configuration file (yaml atau json) sebagai opsi konfigurasi, Anda dapat menentukan konfigurasi build secara inline. Klik Open Editor untuk menulis file konfigurasi build di Google Cloud Console menggunakan sintaksis YAML atau JSON. Klik Done untuk menyimpan konfigurasi build Anda.
- Repositori: Jika file konfigurasi Anda berada di
repositori jarak jauh, berikan lokasi
file konfigurasi build, direktori
- Type: Pilih jenis konfigurasi yang akan digunakan untuk build Anda.
Akun layanan: Pilih akun layanan yang akan digunakan saat memanggil pemicu. Jika Anda tidak memilih akun layanan, akun layanan Cloud Build default akan digunakan.
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 keterangan:
- 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 flag ini tidak disertakan, akun layanan Cloud Build default akan digunakan.
- [Opsional]
--require-approval
adalah tanda yang akan disertakan untuk mengonfigurasi pemicu agar mewajibkan persetujuan.
Untuk mengetahui daftar lengkap flag, lihat referensi gcloud
guna mengetahui 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 ini:
NAME CREATE_TIME STATUS
trigger-001 2019-10-30T20:45:03+00:00
Lihat pemicu build
Untuk melihat pemicu di Google Cloud Console, 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 memperbarui file dokumentasi atau 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.
Clone yang tidak dangkal
Untuk mem-build sumber pada repositori Git, Cloud Source Repositories melakukan shallow clone repositori. Saat menjalankan shallow clone, Cloud Source Repositories hanya memeriksa commit tunggal yang memicu build dari ruang kerja, lalu melakukan build dari sumber tersebut. Cloud Source Repositories tidak memeriksa cabang atau histori lain. Hal ini dilakukan untuk efisiensi. Build tidak tertunda sementara Cloud Source Repositories mengambil seluruh repositori dan histori hanya untuk mem-build dari satu commit.
Untuk menyertakan lebih banyak histori repo dalam build, tambahkan langkah build dalam file konfigurasi build ke "unshallow" clone. Contoh:
steps:
- name: gcr.io/cloud-builders/git
args: ['fetch', '--unshallow']
...
Untuk informasi selengkapnya tentang git fetch
, lihat referensi git.
Untuk petunjuk tentang cara menulis file konfigurasi build, lihat
Ringkasan konfigurasi build.
Langkah selanjutnya
- Pelajari cara memulai build secara manual di Cloud Build.
- Pelajari lebih lanjut cara membangun, menguji, dan men-deploy artefak.