TeamCityは成功したビルドをgitリポジトリにプッシュできますか?
これを行うためのTeamCityの特定のビルドステップがわかりません。
TeamCityのバージョン7.1.1を使用しています
ありがとう、ヘンリック
更新:
回答ありがとうございます。少し複雑だと思います。成功したビルドのタグを、TeamCityがビルドのデータをフェッチするグローバルリポジトリにプッシュバックするだけでよいことがわかりました。そこから変更をプルして、最後のコミットが成功したかどうかを確認できます。
TeamCityがこの種のワークフローに簡単なオプションを提供してくれたら嬉しいです!
すべての開発者が、ビルドが成功したときにのみ更新されるリポジトリからプルできるとしたら、それは素晴らしいことです。それとも、ここで間違っているのでしょうか。
TeamCityにシェルスクリプトを実行させ、その後git Push
を呼び出すことができます(適切な引数を使用して、たとえばgit Push <repository>
を使用して別のリポジトリにプッシュします)。 git
がプッシュ操作に対話型認証を必要としないことを確認してください。
関連する例(git Push
を使用してHerokuにデプロイする)は次の場所にあります: http://blog.carbonfive.com/2010/08/06/deploying-to-heroku-from-teamcity/ 。
8以降にアップグレードする場合は、1つ以上の「自動マージ」ビルド機能を作成できます。これにより、リモートリポジトリにプッシュされます。名前がわかりにくいため、最初は見つかりませんでしたが、名前が異なる多くの異なるVCSをサポートする必要があることは理にかなっています。
やっとできました!
Teamcityプロジェクトにビルドパラメータを追加する必要があります。
name= env.PATH
value= C:\Program Files (x86)\Git\cmd
次に、カスタムスクリプトを使用して新しいコマンドラインビルドステップを追加します。
call git Push "C:\Gruene Git Repos\TeamCityApp" master
「呼びかける」という言葉は重要です!
助けてくれてありがとう!ヘンリック
しばらくの間、TeamCityはVCSラベリングをサポートしていましたが、これにより、VCSルートユーザー(書き込み権限がある場合)は、バージョンまたはTeamCityが知っているその他のもので構築されたコミットハッシュにタグを付けることができます(TeamCityのパラメーター参照のリスト全体を参照してください) wiki)。
別の回答で述べられているように、TeamCityで利用可能な自動マージ機能は、指定されたブランチのリスト(ワイルドカードが有効)から要求されたブランチへのマージを自動的に実行し、監視およびビルドして、成功した場合にのみマージします。
自動マージ機能は優れている可能性がありますが、テストカバレッジが十分でない場合、開発者がテストのないものを壊して、コードに問題が発生する可能性があるため、危険な場合もあります。これを防ぐ1つの方法は、プロジェクトをビルドするたびに+2テストを作成/実行することを要求することです(TeamCityで構成可能)。これらの警告は、自動マージ機能を発表した以前にリンクされた記事に記載されています。
マージに直接関係しない同様の問題が発生しましたが、VCSラベリング(ひどい名前)を使用する場合にTeamCityが追加する「軽量タグ」(少なくともGitの場合)を超えてジョブからいくつかの変更をプッシュする必要があります。
私たちがやったことは:
私の解決策はおそらく愚かですが、単純です。手順は次のとおりです。
Herokugitリポジトリからherokuを複製すると、herokuアプリフォルダーが作成されます。
heroku git:clone -a {app-name}
更新する必要のあるファイルをherokuにコピーします
xcopy client "{app-name}/client" /e/i/h/y
xcopy server "{app-name}/server" /e/i/h/y
xcopy imports "{app-name}/imports" /e/i/h/y
gitadd。
cd {app-name} && git add .
git commit
cd {app-name} && git commit --message 'ok'
Herokuにプッシュ
cd {app-name} && git Push heroku master