17

プロジェクト、ブランチ、およびビルド番号に基づくフォルダー命名規則を使用して、Github から機能ブランチをプルし、それらをローカル フォルダーにビルド/パッケージ化する CI ビルドがあります。

名前付きブランチ (feature1、feature2) の場合、これはうまく機能しています。

問題は、マスターにコミットすると、TeamCity が teamcity.build.branch を次のように公開することです。<default>これは、ビルド ステップが展開されたときを意味します。

E:\Packages\MyProject\%teamcity.build.branch%\

それE:\Packages\MyProject\<default>は有効なWindowsパスではないため、ビルドステップをクラッシュさせています。

完全修飾ビルド パラメータでマスター ブランチ名を確認できます。

teamcity.build.branch                         <default>
teamcity.build.checkoutDir                    C:\TeamCity\BuildAgents\agent-mulder\work\2151838a7933464d
teamcity.build.default.checkoutDir            2151838a7933464d
teamcity.build.id                             16347
teamcity.build.vcs.branch.github_myproject    refs/heads/master

しかし理想的には、ビルドステップで使用するための teamcity.build.branch としてmasterを取得する必要があります。

実行時にパラメータを変換できますか? 動作をオーバーライドしますか? 「マスター」がデフォルトと一致しなくなることを期待して、VCSブランチ名をDO_NOT_USEに設定しようとしましたが、これも機能していないようです。

4

4 に答える 4

4

teamcity 7 では、開発を返す単純な %vcsroot.branch% です。

私の場合、私は持っています

%MajorVersion%.%MinorVersion%.%PatchVersion%-%vcsroot.branch%

これはすべてビルドパラメーターで設定されています。数値形式は %BuildFormatSemVer% で、上記のものと . {0}

%BuildFormatSemVer%.{0}

どちらが返されますか

#1.0.0-develop.4
于 2013-08-13T13:55:55.123 に答える
3

理想的ではありませんが、git で「teamcity」という名前の新しいブランチを作成し、それを TeamCity のデフォルト ブランチとして設定することで回避できました。ブランチを作成したときに機能したため、ブランチが実際に存在する必要があるようです。 、しかし、偽の名前を入力したときはそうではありませんでした。

これは間違いなくハックであるため、彼らが実際にこれを修正することを願っています.

于 2012-09-09T08:36:39.243 に答える
2

パイプラインを作成するときに、この問題に何度か遭遇しました。これは、Gitflow ワークフローを使用してフィーチャー ブランチとリリース ブランチを自動的にビルドしようとするときに最も顕著に現れます。私たちができることは、使用したいときにいつでも文字列をサニタイズするためteamcity.build.vcs.branch.github_myprojectに、正規表現を使用することでした。sedこれは主に、デバッグ目的でアーティファクトに透かしを入れるためのものです。

少なくとも私たちにとってより大きな問題は、TeamCity 7.1.1 バージョンが、VCS ルートのデフォルト ビルド以外の依存関係ビルドを自動的に開始しないことです。ツールを手動でクリックする必要があるため、これは明らかに大きな問題点です。HTTP API を使用して適切なビルド ステップを呼び出す git のフック以外に、これを回避する明確な方法をまだ見つけていません。

于 2013-04-10T14:18:08.757 に答える
1

これが以前に回答されたのか、それとも関連性がなくなったのかはわかりません。

TeamCity 10.0.2 では、%Git.Reference% などのカスタム パラメーターを作成します。TC から git へのプル (またはプッシュ) が必要な場合は、これを「ref/head/Dev」または「ref/Head/yourbranch」に設定します。これを「VCS ルート」リファレンスで使用します。

于 2016-10-12T00:56:02.047 に答える