0

Bamboo OnDemand を使用して .NET Web アプリケーションを構築および展開しようとしています。ビルドは成功しましたが、アーティファクトを社内サーバーの 1 つにデプロイする方法を見つけるのに苦労しています。そして、ファイアウォールを開くことができません。

Bamboo CLI の getArtifactコマンドを試しましたが、パッケージ全体ではなく、指定したファイルしかダウンロードできませんでした。また、アーティファクトをオンデマンドで圧縮する方法が見つからなかったため、上記のコマンドを使用できました。

誰かが同様の状況を克服した場合は、助けてください。手がかり/アドバイスは大歓迎です。ありがとう。

4

1 に答える 1

0

これを達成する方法はいくつかあります。どちらのオプションでも、圧縮を行うためにサーバーで使用可能な zip ツールが必要です。私は 7za.exe ( 7zipのコマンド ライン バージョン)を使用します。

このファイルはリポジトリにチェックインされるため、Bamboo はソースと共にファイルをダウンロードし、スクリプトまたは msbuild からアクセスできます。

1 - ビルド タスクの後にスクリプト タスクを追加します。これを、次のような PowerShell インライン スクリプトとして実行します。

Start-Process -FilePath "bamboo.build.working.directory\7za.exe" -ArgumentList "a","pathToYourArchive.zip", "folderToZip\*" -NoNewWindow -Wait 

ビルド出力を圧縮するスクリプト タスクを追加し、ビルド アーティファクトとして構成した場所にドロップします。

2 - msbuild でリリース ビルド構成をカスタマイズして圧縮を行う

.csproj ファイルを変更し、AfterBuild ターゲットのコメントを外します。Exec タスクを使用して 7za を起動するか、 msbuild 拡張パックなどのカスタム タスクを使用します。

1 の方がおそらく高速なオプションですが、ベスト プラクティスとして、スクリプトをソース管理された ps1 ファイルに入れ、スクリプトを変更して ps1 ファイルを呼び出すようにします。そうすれば、ビルド コードをバージョン管理できます。

于 2014-07-25T04:03:19.510 に答える