Plugin Gradle ini menyediakan implementasi cache build yang menggunakan Google Cloud Storage untuk menyimpan artefak build.
Cache build mengambil opsi berikut:
Pilihan | Keterangan |
---|---|
kredensial | File kunci JSON dari akun layanan yang akan digunakan, jika tidak, Kredensial Default Aplikasi GCP akan digunakan. (opsional) |
keranjang | Nama keranjang Google Cloud Storage (wajib) |
awalan | Awalan jalur untuk objek yang ditulis ke Google Cloud Storage (opsional) |
segarkanAfterSeconds | Jumlah waktu menunggu sebelum stempel waktu artefak cache yang masih digunakan akan diperbarui (opsional) |
menulisThreshold | Jumlah byte saat plugin mulai menggunakan file sebagai buffer untuk menulis entri cache - default 8 MiB (opsional) |
Ada beberapa cara untuk menggunakan cache build berbasis Google Cloud Storage di dalam proyek Anda.
settings.gradle
buildscript {
repositories {
maven {
url ' https://plugins.gradle.org/m2/ '
}
}
dependencies {
classpath ' net.idlestate:gradle-gcs-build-cache:1.3.0 '
}
}
apply plugin : ' net.idlestate.gradle-gcs-build-cache '
buildCache {
local {
enabled = false
}
remote( GCSBuildCache . class ) {
credentials = ' my-key.json ' // (optional)
bucket = ' my-bucket '
prefix = ' app-cache ' // (optional)
refreshAfterSeconds = 86400 // 24h (optional)
writeThreshold = 8 * 1024 * 1024 // 8 MiB
enabled = true
push = true
}
}
settings.gradle
buildscript {
repositories {
maven {
url ' https://plugins.gradle.org/m2/ '
}
}
dependencies {
classpath ' net.idlestate:gradle-gcs-build-cache:1.3.0 '
}
}
import net.idlestate.gradle.caching.GCSBuildCache
import net.idlestate.gradle.caching.GCSBuildCacheServiceFactory
buildCache {
local {
enabled = false
}
registerBuildCacheService( GCSBuildCache . class, GCSBuildCacheServiceFactory . class )
remote( GCSBuildCache . class ) {
credentials = ' my-key.json ' // (optional)
bucket = ' my-bucket '
prefix = ' app-cache ' // (optional)
refreshAfterSeconds = 86400 // 24h (optional)
writeThreshold = 8 * 1024 * 1024 // 8 MiB
enabled = true
push = true
}
}
initscript {
repositories {
maven {
url ' https://plugins.gradle.org/m2/ '
}
}
dependencies {
classpath ' net.idlestate:gradle-gcs-build-cache:1.3.0 '
}
}
import net.idlestate.gradle.caching.GCSBuildCache
import net.idlestate.gradle.caching.GCSBuildCacheServiceFactory
gradle . settingsEvaluated { settings ->
settings . buildCache {
local {
enabled = false
}
registerBuildCacheService( GCSBuildCache . class, GCSBuildCacheServiceFactory . class )
remote( GCSBuildCache . class ) {
credentials = ' my-key.json ' // (optional)
bucket = ' my-bucket '
prefix = ' app-cache ' // (optional)
refreshAfterSeconds = 86400 // 24h (optional)
writeThreshold = 8 * 1024 * 1024 // 8 MiB
enabled = true
push = true
}
}
}
% ./gradlew --build-cache --init-script init-build-cache.gradle <tugas>
Langkah-langkah berikut akan membuat bucket Google Cloud Storage bernama $BUCKET
sebagai bagian dari proyek GCP $PROJECT
di $REGION
Anda dengan akses pribadi. gsutil
tersedia sebagai bagian dari Google Cloud SDK.
% gsutil mb -p $PROJECT -c regional -l $REGION gs://$BUCKET [...] % gsutil acl menyetel gs pribadi://$BUCKET [...]
Untuk membuat akun layanan $ACCOUNT
dengan akses ke bucket, perintah berikut harus dijalankan.
% gcloud iam service-accounts create $ACCOUNT --display-name "Akun layanan untuk mengakses cache build Gradle di Google Cloud Storage" [...] % gsutil acl ch -u $ACCOUNT@$PROJECT.iam.gserviceaccount.com:TULIS gs://$BUCKET [...]
File kunci JSON $KEY_FILE
yang dapat digunakan oleh plugin Gradle untuk mengakses bucket dibuat dengan pernyataan berikut.
% kunci akun layanan gcloud iam dibuat $KEY_FILE --iam-account $ACCOUNT@$PROJECT.iam.gserviceaccount.com [...]
Jika artefak yang di-cache harus dihapus setelah dua minggu, aturan siklus hidup seperti berikut harus diterapkan ke bucket.
{
"rule" :
[
{
"action" : { "type" : " Delete " },
"condition" : { "age" : 14 }
}
]
}
% siklus hidup gsutil menetapkan aturan.json gs://$BUCKET [...]
LISENSI