- Bitriseドキュメントへようこそ!
- 依存関係とキャッシュ
- リモートビルドキャッシュ
- Gradle のリモート ビルド キャッシュ
Gradle のリモート ビルド キャッシュ
Bitrise リモート ビルド キャッシュを使用すると、ローカル ビルドと CI ビルドの両方に Gradle ビルド キャッシュを利用できます。このソリューションは、Gradle タスクの出力をリモート サーバーにキャッシュします。ビルドを実行するとき、Gradle は出力がリモート キャッシュで利用可能なタスクを実行せず、代わりにキャッシュ エントリをダウンロードします。
Gradle ビルド キャッシュ 他のビルドで生成された出力を再利用することで時間を節約できます。 Bitrise リモート ビルド キャッシュを使用すると、ローカル ビルドと CI ビルドの両方に利用できます。
Gradle ビルドは、入力と出力を含む一連のタスクです。 Bitrise は、タスクの出力をパフォーマンスの高いリモート サーバーにキャッシュします。 Gradle ビルドを開始すると、Gradle は出力がリモート キャッシュにあるタスクの実行をスキップし、代わりにキャッシュ エントリをダウンロードして再利用します。
依存関係のキャッシュとビルドのキャッシュ
ビルド キャッシュと依存関係キャッシュは別の概念です。ベスト プラクティスは、ビルド時間を最小限に抑えるために両方を使用することです。続きを読む: Gradle 依存関係のキャッシュ。
キーベースの依存関係キャッシュを使用する
従来の依存関係キャッシュのステップをリモート ビルド キャッシュと組み合わせて使用しないことをお勧めします。代わりに、ビルド キャッシュのみを組み合わせてください。 キーベースの依存関係のキャッシュ。これは、従来の依存関係キャッシュがビルド間でビルド設定を引き継ぐときに発生する可能性のある予期せぬ結果を防ぐためです。
Bitrise CI 環境での Gradle のリモート キャッシュの構成
Bitrise CI 環境では、公式の ステップ Gradle ビルドにリモート ビルド キャッシュを使用します。
Bitrise リモート ビルド キャッシュを使用する場合 ローカルビルドで、まず CI 環境でリモート ビルド キャッシュをアクティブ化する必要があります。
ワークフローエディター
ビットライズ.yml
-
でアプリを開きます ビットライズ。
-
クリック ワークフロー メインページのボタン。
-
で ワークフローとパイプライン ページで、必要なワークフローを見つけます。
-
クリック
ワークフロー名の横にあるボタンをクリックします。
-
を追加します。 Gradle の Bitrise ビルド キャッシュをアクティブ化する ワークフローに進みます。
このステップは、次のような Gradle タスクを実行するステップの前にある必要があります。 グラドルランナー また Android ビルド。
-
ビルドでリモート キャッシュを更新する場合は、 新しいキャッシュ エントリをプッシュする に入力する 真実。
-
必要に応じて、キャッシュ エントリの検証を構成します。 検証レベル input は、無効なキャッシュ エントリが見つかった場合に何が起こるかを決定します。
-
オフ: キャッシュ エントリの検証は行われません。
-
警告: 無効なキャッシュ エントリに関する警告を出力しますが、ビルドは中断されません。
-
エラー: 無効なキャッシュ エントリに関するエラーを出力し、ビルドを中断します。
-
-
を開きます。
bitrise.yml
ファイルを追加して、activate-build-cache-for-gradle
ワークフローに進みます。このステップは、次のような Gradle タスクを実行するステップの前にある必要があります。
gradle-runner
またandroid-build
。your-workflow: steps: - git-clone@8: {} - activate-build-cache-for-gradle:
-
ビルドでリモート キャッシュを更新する場合は、
push
に入力する 真実。のデフォルト値
push
のデフォルト値
push
はtrue
。の値を明示的に設定しない場合、push
、ステップは新しいキャッシュ エントリを書き込みます。your-workflow: steps: - git-clone@8: {} - activate-build-cache-for-gradle: inputs: - push: 'true'
-
必要に応じて、キャッシュ エントリの検証を構成します。
validation_level
input は、無効なキャッシュ エントリが見つかった場合に何が起こるかを決定します。-
off
: キャッシュ エントリの検証は行われません。 -
warning
: 無効なキャッシュ エントリに関する警告を出力しますが、ビルドは中断されません。これは入力のデフォルト値です。入力の値を設定しない場合、警告が出力されますが、ビルドは中断されません。 -
error
: 無効なキャッシュ エントリに関するエラーを出力し、ビルドを中断します。
your-workflow: steps: - git-clone@8: {} - activate-build-cache-for-gradle: inputs: - push: 'true' - validation_level: warning
-
ローカル ビルドでの Gradle のリモート ビルド キャッシュの構成
Bitrise リモート ビルド キャッシュは、ローカル Gradle ビルドにも使用できます。このようにして、ローカル ビルドと CI ビルドは同じビルド キャッシュを使用し、両方の環境でのビルド時間を最小限に抑えます。
Gradle プロジェクトのリモート キャッシュを設定するには 2 つの方法があります。
-
Gradle プロジェクト ファイルを変更せずに、別のファイルでキャッシュを構成します。
-
Gradle プロジェクトのビルド ファイルで直接キャッシュを構成します。
プロジェクトファイルを変更せずに設定する
プロジェクトのビルドファイルを変更して構成する
プロジェクトのビルド構成を変更せずに (同じプロジェクトで作業している他のユーザーに影響を与えずに) リモート キャッシュを開始したい場合は、Gradle init スクリプトを使用できます。
-
Gradle でビルド キャッシュを有効にします。
gradle.properties
プロジェクトのファイル、設定org.gradle.caching=true
。 -
Bitrise でパーソナル アクセス トークンを生成します。 パーソナルアクセストークンの作成。
-
あなたの ワークスペース ID。これを行うには、ワークスペースのページに移動し、URL で ID を見つけます。
-
というファイルを作成します
bitrise-init.gradle
プロジェクト フォルダーの外のどこかに、次の内容が含まれています。initscript { repositories { mavenCentral() maven { url 'https://jitpack.io' } } dependencies { classpath 'io.bitrise.gradle:remote-cache:1.2.0' } } import io.bitrise.gradle.cache.BitriseBuildCache import io.bitrise.gradle.cache.BitriseBuildCacheServiceFactory gradle.settingsEvaluated { settings -> settings.buildCache { local { enabled = false } registerBuildCacheService(BitriseBuildCache.class, BitriseBuildCacheServiceFactory.class) remote(BitriseBuildCache.class) { enabled = true push = false // read-only is recommended for local builds endpoint = 'grpcs://pluggable.services.bitrise.io' authToken = 'workspace ID' + ':' + 'personal access token' } } }
-
の中に
bitrise-init.gradle
ファイル、置き換えるworkspace ID
とpersonal access token
実際のワークスペース ID と個人アクセス トークンを使用します。 -
テスト ビルドを実行して、すべてが機能することを確認します。
./gradlew clean ./gradlew :app:assembleDebug --init-script /path/to/bitrise-init.gradle
-
を定義することで、init スクリプトをすべての Android Studio 実行に統合できます。
--init-script
Android Studio の設定でフラグを設定します。
リモート キャッシュ構成をプロジェクトのビルド構成の一部にすることができます。この場合、プロジェクトのsettings.gradle
ファイル。
-
Gradle でビルド キャッシュを有効にします。
gradle.properties
プロジェクトのファイル、設定org.gradle.caching=true
。 -
Bitrise でパーソナル アクセス トークンを生成します。 パーソナルアクセストークンの作成。
-
あなたの ワークスペース ID。これを行うには、ワークスペースのページに移動し、URL で ID を見つけます。
-
次のコンテンツをプロジェクトの
settings.gradle
(Groovy を使用している場合) またはsettings.gradle.kts
(Kotlin を使用している場合) ファイル:グルーヴィー
コトリン
buildscript { repositories { mavenCentral() maven { url 'https://jitpack.io' } } dependencies { classpath 'io.bitrise.gradle:remote-cache:1.2.0' } } import io.bitrise.gradle.cache.BitriseBuildCache import io.bitrise.gradle.cache.BitriseBuildCacheServiceFactory buildCache { local { enabled = false } registerBuildCacheService(BitriseBuildCache.class, BitriseBuildCacheServiceFactory.class) remote(BitriseBuildCache.class) { enabled = true push = false // read-only is recommended for local builds def localProperties = new Properties() file('local.properties').withInputStream { localProperties.load(it) } authToken = 'workspace ID' + ':' + localProperties.getProperty('io.bitrise.gradle.remoteCache.authToken', '') } }
import io.bitrise.gradle.cache.BitriseBuildCache import io.bitrise.gradle.cache.BitriseBuildCacheServiceFactory import java.util.Properties pluginManagement { ... } dependencyResolutionManagement { ... } buildscript { repositories { mavenCentral() maven { setUrl("https://jitpack.io") } } dependencies { classpath("io.bitrise.gradle:remote-cache:1.2.0") } } buildCache { local { isEnabled = false } registerBuildCacheService<BitriseBuildCache>(BitriseBuildCacheServiceFactory::class) remote<BitriseBuildCache> { isEnabled = true isPush = false // read-only is recommended for local builds val localProperties = Properties() val inputStream = file("local.properties").inputStream() localProperties.load(inputStream) authToken = "workspace ID" + ':' + localProperties.getProperty("io.bitrise.gradle.remoteCache.authToken", "") } }
-
交換してください
workspace ID
スクリプト内で実際のワークスペース ID を使用します。 -
プロジェクトに取り組む各開発者に、独自の個人アクセス トークンを定義してもらいます。
local.properties
ファイル:io.bitrise.gradle.remoteCache.authToken = personal_access_token
この方法では、個人アクセス トークンがビルド構成ファイルにハードコーディングされず、代わりに
local.properties
ファイル。