2016-08-19 13 views
0

1台のTeamCityサーバーを1台のMacで実行していますが、Macでは複数のエージェントが実行されています。エージェントビルドが完了した後のTeamCityサーバーでのスクリプトの実行

ビルド自体は異なります(xcode/build with msbuildを使用)。各構成の最後には同じスクリプトが多数あります。特定のネットワーク共有にファイルをコピーし、チームメンバに通知したり、その他いくつかのことを行います。

それぞれのビルドエージェントでプラットフォーム固有のタスクを実行することができますが、実際のサーバーではそれ以降のスクリプトを実行させることができます。

これは、bashファイルとバッチファイルの両方にすべての情報を書き込むことを避けるためです(私はそのファイルをサーバーに書き込むことができ、それに依存性があることを確認できます)。また、オーディオ/ビジュアル/ビルドが失敗した場合の物理的な警告です。実行されるスクリプトはサーバー上でのみ実行する必要があります(エージェント上のスピーカー/ライト/ネーファー・キャノンはありません)。

どのように私は簡単にサーバー自体で実行するスクリプトを設定し、ビルドからプロパティを渡すことができますか?

これにはプラグインが必要ですか、依存システムで何かできますか、それともREST APIを掘り下げて他の設定をトリガーする必要がありますか?

答えて

0

私たちが最終的に得た解決策はMeta-runnersPython Runnerを使用することでした。これにより、Team City変数を使用して設定できるクロスプラットフォームPythonスクリプトを作成することができます。また、これらのスクリプトを複数の設定で使用することもできます。

誰かがこれを行うことを望んでいる場合は、スクリプト内でプラットフォーム固有のものを実行する必要がある場合は、platform moduleをpythonで使用すると便利です。

たとえば、次のコードは、すでにビルドエージェントのセットアップをネットワーク共有パスを使用するために、私たちに私たちをことができます:

if platform.system() == 'Windows': 
    network_folder = "//server_pc/builds" 
else: 
    network_folder = "/Volumes/builds" 
関連する問題