これはAzure DevOpsアドベントカレンダー21日目の記事です。
Azure Pipelinesにおいて、ビルド結果の成果物をパイプラインもしくはジョブ間で受け渡すにはArtifacts保存用のストレージを使います。
Artifactsへアップロードおよび、ダウンロードするタスクは二種類用意されています。
一応ドキュメントにはPublishBuildArtifacts
および、DownloadBuildArtifacts
よりもDownload Pipeline Artifacts
とPublish Pipeline Artifacts
を使いましょう、と書かれています。これらのタスクはGitHubにソース公開されていますが、中身はPublishBuildArtifacts
以外ありません。
ダウンロードタスクに関してはビルドエージェントの機能を使っているので、そんなに変わらないようです。どちらのタスクを使っても同じArtifactsのダウンロードはできます。
昨日のエントリーのTestBaseの160MBくらいのデータを並列でダウンロードした結果。
何回か実施したら変わるかもしれませんが、どちらもエージェントの機能を使っているので、有意な差はなさそうです。
アップロードに関しては、PublishBuildArtifacts
タスクはTypeScriptで実装されています。
アップロードに20秒かかっています。
PublishPipelineArtifact
タスクはビルドエージェントの機能を使っているようで、中身はありません。
PublishPipelineArtifact
タスクだと11秒で完了しています。160MBで9秒も違うとすごい差ですね。非推奨となるのもわかります。今のところ非推奨フラグはついていませんが、新規で作るパイプラインはPublishPipelineArtifact
タスクを使いましょう。