ปลั๊กอิน Gradle นี้จัดเตรียมการใช้งานแคชของบิลด์ที่ใช้ Google Cloud Storage เพื่อจัดเก็บสิ่งประดิษฐ์ของบิลด์
บิลด์แคชใช้ตัวเลือกต่อไปนี้:
ตัวเลือก | คำอธิบาย |
---|---|
ข้อมูลรับรอง | ไฟล์คีย์ JSON ของบัญชีบริการที่จะใช้ มิฉะนั้นจะใช้ข้อมูลรับรองเริ่มต้นของแอปพลิเคชัน GCP (ไม่จำเป็น) |
ถัง | ชื่อของที่เก็บข้อมูล Google Cloud Storage (จำเป็น) |
คำนำหน้า | คำนำหน้าเส้นทางสำหรับออบเจ็กต์ที่เขียนไปยัง Google Cloud Storage (ไม่บังคับ) |
รีเฟรช AfterSeconds | ระยะเวลาที่รอก่อนที่จะต่ออายุการประทับเวลาของส่วนแคชที่ยังคงใช้งานอยู่ (ไม่บังคับ) |
เขียนเกณฑ์ | จำนวนไบต์ที่ปลั๊กอินเริ่มใช้ไฟล์เป็นบัฟเฟอร์สำหรับการเขียนรายการแคช - ค่าเริ่มต้น 8 MiB (เป็นทางเลือก) |
มีหลายวิธีในการใช้แคชบิวด์ที่ใช้ Google Cloud Storage ภายในโปรเจ็กต์ของคุณ
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 <งาน>
ขั้นตอนต่อไปนี้จะสร้างที่เก็บข้อมูล Google Cloud Storage ชื่อ $BUCKET
โดยเป็นส่วนหนึ่งของโปรเจ็กต์ GCP $PROJECT
ใน $REGION
ของคุณพร้อมการเข้าถึงแบบส่วนตัว gsutil
พร้อมใช้งานโดยเป็นส่วนหนึ่งของ Google Cloud SDK
% gsutil mb -p $PROJECT -c ภูมิภาค -l $REGION gs://$BUCKET - % gsutil acl ตั้งค่าส่วนตัว gs://$BUCKET -
หากต้องการสร้างบัญชีบริการ $ACCOUNT
พร้อมสิทธิ์เข้าถึงบัคเก็ต จะต้องดำเนินการคำสั่งต่อไปนี้
% บัญชีบริการ gcloud iam สร้าง $ACCOUNT --display-name "บัญชีบริการเพื่อเข้าถึงแคช Gradle build ใน Google Cloud Storage" - % gsutil acl ch -u $ACCOUNT@$PROJECT.iam.gserviceaccount.com:เขียน gs://$BUCKET -
ไฟล์คีย์ JSON $KEY_FILE
ที่ปลั๊กอิน Gradle สามารถใช้เพื่อเข้าถึงที่เก็บข้อมูลถูกสร้างขึ้นด้วยคำสั่งต่อไปนี้
% คีย์บัญชีบริการ gcloud iam สร้าง $KEY_FILE --iam-account $ACCOUNT@$PROJECT.iam.gserviceaccount.com -
หากควรลบอาร์ติแฟกต์ที่แคชไว้หลังจากผ่านไปสองสัปดาห์ ควรใช้กฎดังต่อไปนี้กับบัคเก็ต
{
"rule" :
[
{
"action" : { "type" : " Delete " },
"condition" : { "age" : 14 }
}
]
}
% ชุดวงจรการใช้งาน gsutil กำหนดกฎ.json gs://$BUCKET -
ใบอนุญาต