19

TeamCity でアーティファクト パスをスクリプトに渡すにはどうすればよいですか。シナリオはこれ

  1. ビルドプロジェクト
  2. プロジェクトのデプロイ (#1 へのアーティファクト依存関係あり)

ステップ 2 は aa スクリプトで構成され、

  1. サービスを停止します (ファイルのロックを解除するため)
  2. ビルド成果物をサーバーにコピーします
  3. サービスを再起動します

ステップ 2 に苦労しています。ビルド アーティファクトのパスをスクリプトに渡す必要があると思いますが、その方法がわかりません。

4

1 に答える 1

17

私たちはこのようなことをします。100% 明確ではありませんが、TeamCity で 2 つの別個のビルドとしてビルドとデプロイを行いたいようで、メイン ビルドのデプロイ ビルドからアーティファクトの依存関係があります。これはまさに私たちが行っていることです。これが私たちのやり方です。

  • すでに完了しているように聞こえるメインビルドからアーティファクトをセットアップします。

    例: **\bin\release\*.* => ビン
  • アーティファクトの依存関係をセットアップして (スナップショットの依存関係も行いますが、その必要はありません)、アーティファクトをメイン ビルドからプルし、デプロイ ビルドのローカル フォルダーに配置します。

    例: 成果物のパス: bin\**\*.* 宛先パス: bin\
  • 実際の展開作業を行うために、MSBuild と PowerShell を組み合わせて使用​​します。いずれの場合も、相対パスを使用してアーティファクトを参照できます。

    ビルド作業フォルダーが次のようになっている場合:

    根
     |- bin (メイン ビルドから取り込まれたアーティファクト)
     |- ソース
     |- ビルド (ビルドおよびデプロイ スクリプトが存在する場所)
    

    次のようなビルド フォルダーにあるデプロイ スクリプトから bin ファイルにアクセスします。

    ..\bin\[あなたのファイル]

次に、このようにビルド成果物へのパスを渡すことができます

%teamcity.build.checkoutDir%\bin\
于 2012-04-27T17:15:13.697 に答える