0

製品をビルドする Azure ビルド パイプラインがあります。最近、カスタム エージェント プールに移行したので、プール内の VM を制御できるようになりました。最近、コード署名ステップを追加しました。この手順では、すべてのバイナリに署名しているため、ビルド時間が 2 倍になります。これまで、フル ビルドの実行は約 20 分だったので、キャッシュについては考えていませんでした。現在、私たちは45歳以上です。

キャッシュする方法を考えようとしていますが、署名されたバイナリをキャッシュすると、ハッシュがまだないか、新しく構築された署名されていないファイルと比較できるものがありません。署名されていないバイナリと署名されたバイナリをキャッシュし、ビルド後に署名されていないバイナリとビルドされたばかりのものを比較できます。一致の場合は、キャッシュから署名済みのバージョンを取得し、その他の場合は署名を進めます。

これは非常に複雑に思えます。他のオプションはありますか?

4

1 に答える 1

0

Azure DevOps が提供するパイプライン キャッシュは、ある実行からの出力またはダウンロードされた依存関係を後の実行で再利用できるようにすることで、ビルド時間を短縮するのに役立ちます。これにより、同じファイルを再作成または再ダウンロードするコストを削減または回避できます。キャッシュは、各実行の開始時に同じ依存関係が何度もダウンロードされるシナリオで特に役立ちます。

現在、キャッシングは CI およびデプロイ ジョブでサポートされていますが、クラシック リリース ジョブではサポートされていません。

ただし、シナリオによっては、特に I don't have a hash yet or anything I can compare to the newly built unsigned files. 現金はこれに適していない場合があります。

キャッシュを復元して保存する時間が、最初から出力を再生成する時間よりも短い場合、キャッシュはビルド時間を短縮するのに効果的です。このため、キャッシュはすべてのシナリオで効果的であるとは限らず、実際にはビルド時間に悪影響を与える可能性があります。

ビルド時間を短縮するには、ビルド エージェントをホストするサーバーのインフラストラクチャを改善することを期待してください。ビルド パイプラインに並列ジョブを使用することもできます 。

于 2020-11-02T10:07:24.213 に答える