2016-11-03 4 views
2

コードは複数のプロジェクトに分かれています。プロジェクトAからのライブラリは、プロジェクトCで使用されるプロジェクトBによって使用されます。しかし、ビルド間でアーティファクトを共有する方法を見つけることはできません。Team Servicesのビルド間で成果物をコピーする

すべてのビルドステップはアーティファクトをパブリッシュすることについてのものですが、ダウンロードに関するものはありません(Jenkinsのダウンロードアーティファクトは必要ありませんが、代わりにチームサービス用です)。

これはすべてホストされたエージェントで行われるため、すべてのビルドで認識される場所にファイルをコピーすることもできません。

私もDownload Artifacts拡張を試しましたが、これはリリースでのみ動作し、ビルドでは動作しません。

ビルドAからアーティファクトをビルドBに取得するにはどうすればよいですか?

答えて

1

プロジェクトが同じリポジトリ内にある場合は、複数のビルドステップを持つ単一のビルド定義を持つことができます。たとえば、プロジェクトAをビルドして、プロジェクトBなどの参照先のフォルダに出力します。

プロジェクトが異なるリポジトリ内に存在する場合は、それほどきれいではありません。ただし、ビルド成果物のビルド手順には、ファイル共有にパブリッシュするオプションがあります。私はあなたがその後のプロジェクトビルドの一環としてファイル共有を参照できると思います。

しかし、私は非常に少しあなたのアプローチを変えることをお勧めします。プロジェクト(プロジェクトAなど)を共有している場合は、これらの成果物を作成してプライベートNugetフィードとして公開することができます。プロジェクトBは、他のNugetパッケージと同様に、プライベートNugetフィードを参照パッケージとして追加できます。その後、VSTSビルドとローカルビルドの両方で動作し、必要なバージョンなどを判断できます。

VSチームサービスextension for Package Managementがこれを達成するのに役立ちます。これらの文献にも役立つことがあります。

+0

私はNuGetを試してみますよ。プロジェクトがほとんどC++であり、CMakeを使用しているので、どのように統合されているかを確認する必要があります。 –

+1

拡張機能の柔軟性(認証付きのNugetサーバーでビルドさえしています)があれば、これは最善の方法と思われます。それは同時に他の部門とprebuild図書館を共有する問題を解決します –

+0

、幸運を聞いてよかった! –

関連する問題