Halaman ini menjelaskan cara menentukan dependensi build. Cloud Build memungkinkan Anda mengelola dependensi kode sumber secara terpisah dari proses build.
Dalam file konfigurasi build, Anda dapat mencantumkan satu atau beberapa repositori yang akan di-clone untuk build, dan urutan pengambilan repositori tersebut. Menentukan dependensi dengan cara ini memisahkan pengambilan dependensi dari proses build itu sendiri.
Jika Anda tidak menyertakan dependensi apa pun dalam file konfigurasi build, Cloud Build akan meng-clone repositori kode sumber yang berisi file konfigurasi build (untuk build yang dipicu) atau repositori yang berisi kode sumber Anda (untuk build yang Anda panggil dari command line). Jika Anda menyertakan dependensi dalam file konfigurasi build, Cloud Build hanya akan meng-clone repositori yang ditentukan di kolom dependencies.
Dependensi dikloning sesuai urutan yang Anda tentukan. Selain itu, pengambilan dependensi terjadi sebelum logika yang ditentukan pengguna dieksekusi. Dengan demikian, pengambilan dependensi dapat dipercaya.
Dependensi ditampilkan di tab Build dependencies di halaman Build details.
Sebelum memulai
Petunjuk di halaman ini mengasumsikan bahwa Anda memiliki setidaknya salah satu dari dua jenis repositori berikut:
Repositori Git yang berupa repositori publik atau ditautkan ke Cloud Build menggunakan Developer Connect.
Untuk memastikan memiliki izin yang diperlukan untuk menambahkan repositori Developer Connect sebagai dependensi,
minta administrator untuk memberikan peran IAM
Developer Connect Read Token Accessor (developerconnect.readTokenAccessor)
kepada di akun layanan Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Administrator Anda mungkin juga dapat memberikan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Menentukan dependensi
Anda menentukan dependensi dengan menambahkan kolom dependencies ke file konfigurasi build. dependencies adalah properti tingkat teratas dalam konfigurasi build,
tetapi Anda dapat menempatkannya di mana saja dalam file.
Menentukan dependensi GitHub
Untuk menentukan dependensi pada repositori GitHub, tambahkan konfigurasi dependencies
berikut ke file konfigurasi build Anda:
YAML
dependencies:
- gitSource:
repository:
url: 'URL'
developerConnect: 'DC_RESOURCE_PATH'
revision: 'REVISION'
recurseSubmodules: 'true|false'
fetchTags: 'true|false'
depth: 'DEPTH'
destPath: 'DEST_PATH'
JSON
{
"dependencies": {
"gitSource": {
"repository": {
"url": "URL"
"developerConnect": "DC_RESOURCE_PATH"
},
"revision": "REVISION",
"recurseSubmodules": true|false,
"fetchTags": true|false,
"depth": "DEPTH",
"destPath": "DEST_PATH",
},
},
}
Ganti nilai berikut:
URL: URL HTTPS repositori yang akan diambil. Wajib diisi kecuali jika repositori Anda terhubung ke Cloud Build menggunakan Developer Connect.
DC_RESOURCE_PATH: Jalur Google Cloud resource ke repositori Developer Connect. Contohnya,
projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repo. Diperlukan jika repositori Anda terhubung ke Cloud Build menggunakan Developer Connect.Jika repositori Anda terhubung menggunakan Developer Connect, Anda memerlukan hal berikut:
- Akun layanan Cloud Build harus memiliki peran
Developer Connect Read Token Accessor.
- Akun layanan Cloud Build harus memiliki peran
REVISION: Wajib diisi. Versi, hash commit, tag, atau nama cabang yang akan diambil dari repositori.
recurseSubmodules: 'true|false': Apakah akan mengambil submodul.fetchTags: 'true|false': Opsional. Benar jika tag jarak jauh juga harus diambil (defaultfalse). Catatan: jikadepthadalah1(default),git fetchhanya mengambil tag yang mengarah ke commit dalam batas dangkal. Seteldepthke-1untuk mengambil semua tag historis.DEPTH: Opsional, seberapa dalam histori repositori yang akan diambil. Jika tidak ditentukan, commit terbaru akan diambil.
1: commit terbaru2: dua commit terakhir3: tiga commit terakhir-1: semua commit
DEST_PATH: Wajib diisi. Jalur ke direktori tempat repositori di-clone. Contoh,
my/repo.Saat Anda menetapkan
dest_path, repositori akan diambil di/workspace/<dest_path>. Nilaidest_pathharus berupa jalur relatif ke direktori kerja build.
Menentukan artefak generik sebagai dependensi
Untuk menentukan
artefak generik
sebagai dependensi, tambahkan konfigurasi dependencies berikut ke file konfigurasi build Anda:
YAML
dependencies:
- genericArtifact:
resource: RESOURCE
destPath: PATH
JSON
{
"dependencies": [
{
"genericArtifact": {
"resource": "RESOURCE",
"destPath": "PATH"
}
}
]
}
Dengan:
RESOURCE adalah alamat lengkap artefak generik dalam repositori generik Artifact Registry Anda, yang diformat sebagai berikut:
projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/packages/PACKAGE/versions/VERSIONSebaiknya sertakan sidik jari artefak Anda dalam alamat resource agar Cloud Build dapat memverifikasi bahwa referensi artefak tidak dapat diubah. Versi paket dengan sidik jari yang ditambahkan diformat sebagai berikut:
VERSION@dirsum_sha256=HASH_VALUEUntuk menemukan sidik jari artefak di repositori Artifact Registry, lihat Mengambil sidik jari versi paket di repositori Anda.
PATH adalah alamat ke folder tempat Cloud Build mendownload paket dari repositori Anda. Jika folder belum ada, Cloud Build akan membuatnya secara otomatis.
Langkah berikutnya
Pelajari cara menghubungkan repositori ke Cloud Build menggunakan repositori Cloud Build.
Pelajari cara menghubungkan repositori ke Cloud Build menggunakan Developer Connect.