29

特定のビルド パラメーターをスケジュールされたトリガーにアタッチする方法を探しています。

アイデアは、製品のデバッグ バージョンを継続的に構築しているということです。ただし、ナイトリー ビルドはリリース ビルドでなければなりません。ほとんどのプロジェクトのビルド構成はまったく同じです。すでに構成パラメーターもあります。したがって、必要なのは、単一のビルド パラメーターのオーバーライドを指定できるトリガーだけです。これにより、維持するビルド構成が半分になります。

これを達成する方法はありますか?

4

5 に答える 5

10

今すぐではありません。この問題をフォローできます。

于 2012-04-04T13:48:56.613 に答える
4

私は同じ問題に悩まされ、Evgeny が言及した問題に投票しました。私たちが考えた解決策の 1 つは、sergiussergius が述べたように、ビルド ステップ シーケンスに最後のステップを追加して、REST API を使用してカスタム ビルド パラメーターを渡すことにより、次のビルド構成を手動でトリガーすることでした。しかし、この場合、ビルド チェーンの情報が失われています。TeamCity 9.x を使用して、REST API でいくつかのことを試してみると、トリガー (祖先) ビルドとトリガーされた (子) ビルドからそのパラメーターを取得できるようにするソリューションを実装できました。最初に行うことは、TeamCity によって設定された環境変数を使用して現在のビルドを取得することです。

https://<host>/httpAuth/app/rest/builds/number:<env.BUILD_NUMBER>,buildType:(name:<env.TEAMCITY_BUILDCONF_NAME>,project:<env.TEAMCITY_PROJECT_NAME>)

REST API からの応答には、トリガーに関する情報を含む/build/triggeredタグがあります。このように見えます

<triggered type="unknown" details="##triggeredByBuildType='<triggering-build-configuration-internalId>' triggeredByBuild='<triggering-build-number>'" date="20160105T190642+0700"/>

私たちにとってはbtxxxのように見えます。そこから、REST API への次の要求を使用して、トリガー ビルド (祖先) にアクセスできます。

https://<host>/httpAuth/app/rest/builds/number:<triggering-build-number>'4,buildType:(internalId:<triggering-build-configuration-internalId>1,project:name:<env.TEAMCITY_PROJECT_NAME>)

応答から、祖先ビルドのパラメーター値を取得し、次を使用して現在のビルドに設定できます。

echo "##teamcity[setParameter name='env.ENV_AAA' value='aaaaaaaaaa']")

ノート:

  • この投稿では、TeamCity バージョン 7.X を参照しています。TeamCity バージョン 9.X を使用してこれを行いましたが、以前のバージョンでは試すことができませんでした。私の投稿で言及されている REST API 呼び出しが以前のバージョンと似ているかどうかはわかりません。
  • このソリューションでは、祖先のビルド構成 (ビルドをトリガーするもの) と子のビルド構成 (トリガーされるもの) が同じプロジェクトにあります。私は 2 つの異なるプロジェクトでビルド構成を使用してテストを行いませんでした: 「トリガー」タグが祖先のプロジェクトに関する情報を提供することを期待します。誰かがテストをしてくれるといいですね。

この解決策が役立つことを願っています!

于 2016-01-13T15:48:06.093 に答える
1

最後のビルドステップにリクエストを追加しました

curl -i -u "%login%:%pass%" -H "Content-type: text/plain" -X PUT -d "v1" http://tc.server/httpAuth/app/rest/buildTypes/id:%buildConfigurationId%/parameters/env.%SOME_PARAMETER%

http://confluence.jetbrains.com/display/TCD8/REST+API

于 2014-10-10T17:51:29.260 に答える