📣
TiDB Cloud Premium はパブリックプレビュー中です。エンタープライズワークロード向けの無制限のスケーリング、即時の弾力性、高度なセキュリティを提供します。このページは自動翻訳されたものです。原文はこちらからご覧ください。

TiDB Cloud Filesystem を使用して分離されたジョブ間で CI アーティファクトを受け渡す



このワークフローでは、分離された CI ジョブまたはランナー間でアーティファクトを受け渡すための永続的な受け渡しポイントとして Filesystem を使用します。ビルド出力を生成ジョブの終了後も保持し、プロバイダー固有のアーティファクト API、保持モデル、ダウンロードワークフローを追加せずに、後続のコンシューマージョブで利用できるようにする必要がある場合に使用します。

仕組み

パイプラインは、1 つの Filesystem トークンとリージョンを両方のジョブに注入します。トークンは Filesystem を識別します。生成側ジョブは /ci/${RUN_ID}/ のような今回の実行に固有のパス配下に出力をアップロードし、コンシューマー側ジョブは別のランナー上でその正確なパスからデータをダウンロードまたはストリーミングします。どちらのジョブにも TiDB Cloud API キーやコピーされた ~/.ti/ ディレクトリは不要です。

前提条件

信頼できるマシンで Filesystem を作成 し、次の値を保護された CI シークレットまたは変数として保存します。

TI_FS_TOKEN TI_REGION_CODE

並行して実行されるパイプラインを分離するために、RUN_ID のような CI 生成の実行識別子を使用します。

生成側ジョブ

アーティファクトをビルドしてからアップロードします。

tar -czf app.tar.gz ./dist ti fs copy-file \ --from-local ./app.tar.gz \ --to-remote "/ci/${RUN_ID}/app.tar.gz" \ --tag pipeline=build \ --description "artifact for run ${RUN_ID}"

コンシューマー側ジョブ

別のランナーからアーティファクトをダウンロードして検証します。

ti fs copy-file \ --from-remote "/ci/${RUN_ID}/app.tar.gz" \ --to-local ./app.tar.gz \ --create-parents tar -tzf app.tar.gz

標準入力を受け付けるコマンドの場合は、中間のローカルファイルを避けられます。

ti fs copy-file --from-remote "/ci/${RUN_ID}/app.tar.gz" --to-stdout \ | tar -tzf -

クリーンアップと分離

すべてのコンシューマーが完了した後で、今回の実行に固有のディレクトリのみを削除します。

ti fs delete-file --path "/ci/${RUN_ID}" --recursive

一意の実行 ID を使用し、個々のジョブから Filesystem 全体を削除しないでください。Filesystem の削除には信頼されたコントロールプレーンの設定が必要であり、別個の所有者操作として維持する必要があります。

次のステップ

このページは役に立ちましたか?