- Bitriseドキュメントへようこそ!
- 依存関係とキャッシュ
- リモートビルドキャッシュ
- Tuist のリモート ビルド キャッシュ
Tuist のリモート ビルド キャッシュ
Tuist は、Xcode プロジェクトの生成、メンテナンス、および対話を容易にすることを目的としたコマンド ライン ツールです。 Bitrise は、Tuist のリモート キャッシュ機能のカスタムのホスト型実装を提供します。この実装はローカルと Bitrise CI 環境の両方で使用できます。
チューイスト は、Xcode プロジェクトの生成、メンテナンス、および対話を容易にすることを目的としたコマンド ライン ツールです。 Bitrise は、Tuist のカスタムのホスト型実装を提供します。 リモートキャッシュ機能。この実装はローカルと CI 環境の両方で使用できます。
Bitrise CI 環境での Tuist のリモート キャッシュの構成
Bitrise で Tuist キャッシュを使用するには、ワークフローで 2 つの Tuist コマンドを使用する必要があります。 tuist cache warm と tuist generate。これには 2 つの別々のワークフローを使用することをお勧めします。1 つはキャッシュのウォーミング用のワークフロー、もう 1 つは Tuist で実際にビルドするためのワークフローです。
ワークフローエディター
ビットライズ.yml
-
無効にする チューストクラウド Tuist プロジェクトで使用する場合。 Tuist Cloud が有効になっている場合、Bitrise ビルド キャッシュよりも優先されるため、これが必要です。
-
新しいワークフローを作成します。このワークフローは、 tuist cache warm コマンドを実行して、初めてリモート キャッシュにデータを設定します。
タイム クリティカルな CI ワークフローを実行する場合は、このワークフローを定期的に実行して、キャッシュが確実にウォームであることを確認することをお勧めします。たとえば、次のことができます 夜のランニングをスケジュールする このワークフローの場合。正確な実装は、特定の要件によって異なります。
-
を追加します。 Tuist の Bitrise ビルド キャッシュをアクティブ化する ワークフローに進みます。
このステップの前に Tuist コマンドを実行しないでください
このステップは、Tuist コマンドを実行するステップの前に指定する必要があります。
-
追加 脚本 ワークフローに進みます。
-
の中に コンテンツ 入力に、次のスクリプトを追加します。
tuist fetch tuist cache warm --dependencies-only
依存関係のみを伴うウォーム
を実行するのは良い習慣です。 warm を使用したコマンド
--dependencies-only
初めてのフラグ。これにより、依存関係ターゲットのみがビルドされ、ビルドが中断される可能性は低くなります。依存関係がキャッシュされたら、フラグを削除してすべてのターゲットの構築を試行できます。 -
これで、他のワークフローで Tuist キャッシュを使用できるようになります。 Tuist の Bitrise ビルド キャッシュをアクティブ化する 使用するワークフローに進みます。 tuist generate 指図。ステップは次の直後に来る必要があります Git クローン ステップ。
-
走る tuist generate、を追加します 脚本 ワークフローに進み、次の内容をワークフローに追加します。 コンテンツ 入力:
tuist generate MyTarget --no-open
重点を置いた Xcode プロジェクト
ビルド回避とキャッシュのパフォーマンスを最大限に引き出すには、次の生成を忘れないでください。 焦点を絞った Xcode プロジェクトプロジェクト全体の代わりに!リモート キャッシュが有効になっており、フォーカスされたプロジェクトを生成すると、Tuist はフォーカスされたターゲット (サードパーティ ターゲットとプロジェクト ターゲットの両方) の依存関係を、リモート キャッシュから直接プリコンパイルされたフレームワークに置き換えます。
-
無効にする チューストクラウド Tuist プロジェクトで使用する場合。 Tuist Cloud が有効になっている場合、Bitrise ビルド キャッシュよりも優先されるため、これが必要です。
-
の中に
bitrise.yml
ファイルを実行するワークフローを作成します。 tuist cache warm コマンドを実行して、初めてリモート キャッシュにデータを設定します。タイム クリティカルな CI ワークフローを実行する場合は、このワークフローを定期的に実行して、キャッシュが確実にウォームであることを確認することをお勧めします。たとえば、次のことができます 夜のランニングをスケジュールする このワークフローの場合。正確な実装は、特定の要件によって異なります。
-
を追加します。
activate-build-cache-for-tuist
ワークフローに進みます。このステップの前に Tuist コマンドを実行しないでください
このステップは、Tuist コマンドを実行するステップの前に指定する必要があります。
my_workflow: steps: - git-clone: {} - activate-build-cache-for-tuist: title: Activate Bitrise build cache for Tuist
-
追加
script
ワークフローに進み、追加しますtuist fetch
とtuist cache warm --dependencies only
にcontent
入力:my_workflow: steps: - git-clone: {} - activate-build-cache-for-tuist: title: Activate Bitrise build cache for Tuist - script: title: Tuist cache warm inputs: - content: |- set -ex tuist fetch tuist cache warm --dependencies-only
依存関係のみを伴うウォーム
を実行するのは良い習慣です。 warm を使用したコマンド
--dependencies-only
初めてのフラグ。これにより、依存関係ターゲットのみがビルドされ、ビルドが中断される可能性は低くなります。依存関係がキャッシュされたら、フラグを削除してすべてのターゲットの構築を試行できます。 -
これで、他のワークフローで Tuist キャッシュを使用できるようになります。
activate-build-cache-for-tuist
使用するワークフローに進みます。 tuist generate 指図。ステップは次の直後に来る必要がありますgit-clone
ステップ。my_other_workflow: steps: - git-clone: {} - activate-build-cache-for-tuist: title: Activate Bitrise build cache for Tuist
-
走る tuist generate、を追加します
script
ワークフローに進み、 generate に命令するcontent
入力:my_other_workflow: steps: - git-clone: {} - activate-build-cache-for-tuist: title: Activate Bitrise build cache for Tuist - script: title: Tuist generate inputs: - content: |- set -ex tuist generate MyTarget --no-open
🤖 が表示されると、キャッシュが機能していることがわかります。 Bitrise remote cache enabled
Tuist の出力内。
ローカル ビルドで Tuist のリモート キャッシュを構成する
ローカル ビルドのリモート キャッシュを使用すると、ローカル ビルドと Bitrise CI 環境で同じキャッシュを使用できます。どちらの環境でもビルド時間を最小限に抑えることができます。
ローカル ビルドで Tuist のリモート キャッシュを構成するには:
-
無効にする チューストクラウド Tuist プロジェクトで使用する場合。 Tuist Cloud が有効になっている場合、Bitrise ビルド キャッシュよりも優先されるため、これが必要です。
-
Bitrise CI 環境で Tuist のリモート キャッシュをセットアップします。 Bitrise CI 環境での Tuist のリモート キャッシュの構成。
-
Bitrise ビルド キャッシュをサポートする Tuist バージョンをインストールします。次のシェル スクリプトを使用して Tuist バイナリをダウンロードし、プロジェクトのファイルに解凍できます。
.tuist-bin
フォルダ:RELEASE_URL=https://bitrise-tuist.bitrise.io/tuist-3.18-bitrise-a4baa03.zip DOWNLOAD_PATH=$TMPDIR/tuist.zip TUIST_BIN_PATH=.tuist-bin curl -s --fail --show-error $RELEASE_URL --output "$DOWNLOAD_PATH" echo "b31d9c982809a2dea0c0d7b091674bb4b9b3035d7efcb035fd1880d7284fbb88 *$DOWNLOAD_PATH" | shasum -a 256 --check rm -rf "$TUIST_BIN_PATH" mkdir "$TUIST_BIN_PATH" tar -xf "$DOWNLOAD_PATH" --directory="$TUIST_BIN_PATH"
これが完了したら、呼び出しますtuistプロジェクトのルート フォルダーからベンダー提供のバイナリを使用します。
.tuist-bin
。 -
Bitrise でパーソナル アクセス トークンを生成します。 パーソナルアクセストークンの作成。
-
あなたの ワークスペース ID。これを行うには、ワークスペースのページに移動し、URL で ID を見つけます。
-
開ける プロジェクトの Config.swift ファイル Bitrise 認証情報を入力します。
import ProjectDescription let config = Config( // other config options... bitrise: .bitrise( workspaceId: "your-bitrise-workspace-id", authToken: Environment.bitriseAuthToken.getString(default: "") ) )
必要がある:
-
交換してください
workspaceId
プレースホルダー値を実際のワークスペース ID に置き換えます。 -
キーを含むローカル環境変数があることを確認してください。
BITRISE_AUTH_TOKEN
これには個人用のアクセス トークンが含まれています。上記のスニペットは、シークレット値を含む正確な変数を想定しています。プロジェクトでシークレットが異なる方法で処理される場合は、プロジェクトのパターンを採用するようにスニペットを変更する必要があります。
-
-
いつものことを実行するtuist generateコマンド。
設定が正しい場合は、次の行が表示されるはずです 🤖 Bitrise remote cache enabled
Tuist ログには、Tuist がリモート キャッシュから事前構築済みフレームワークをダウンロードした痕跡も含まれています。