2016-04-08 16 views
0

新しいワークフローを設定しようとしています。私たちはGit SCMに裏付けされた前提でTFS 2015を使用しています。しかし、Jenkinsをビルドやデプロイメントに使用したいと考えています。私たちは.NET/mono Javaを構築しています& Java for android、nodejs、その他いくつかのビット。また、Jenkinsからドッカーに自動展開します。だから新しいTFSのビルドは良く見えますが、私は今、それらを試してみたくありません。TFS 2015、GitとJenkinsワークフローの問題

私の問題は、TFSプルリクエストとコードレビューの周りです。開発者はマスターに提出することはできません。ブランチポリシーを設定しているので、ブランチをリモートにプッシュするプルリクエストを提出する必要があります。しかし、私はJenkinsをリンクしているが、ブランチポリシーの一部としてTFSビルドを選択することしかできないように、「必須ビルド」ポリシーを設定することはできません。

サービスフック機能を使用してJenkinsをTFSにリンクしました。そのようにTFSビルドを開始できますが、特定のブランチを監視する必要があるため、自分の役に立たないと思います。そこで代わりに私はJenkinsからgitをポーリングし、master以外のrepoのすべてのブランチに対してビルドしています。

私がしたいのは、開発者に自分のブランチをリモートにプッシュして、ジェンキンスがそれをビルドして(私はこれを持っています)、何らかの形でビルドレポートやTFSへのリンクを公開します他の開発者がTFS UIを使用してコードレビューを行うようになると、ビルドレポートを表示することができます。 (これは私が立ち往生しているビットです)

これが実行され、マージが実行されると、配備などを実行する他のビルドは、マスターブランチに対して実行できます。 TFSに戻ってきただけです。私は苦労しています。他の誰かに答えがありました。

誰にでも解決策がありますか?私はgit publishプラグインを使ってgit notesにビルド結果にURLを追加しようとしましたが、TFSはそれをどこにでも表示していないようです。私は単にJenkinsの仕事を呼び出すためにTFSビルドを設定することを考えましたが、ちょっとハッキリしています。より良い方法がありますか?

答えて

0

私はこれを最後に解決しました。私がやったことは、Jenkinsがプルリクエストに別のコミットを追加し、コミットのコメントがJenkinsビルドレポートへのリンクであることです。 Jenkinsの仕事を変更して、無限ループのビルドを防ぐためにJenkinsユーザーによるコミットを無視しなければなりませんでした。

プルリクエストが送信されると、Jenkinsはこれを選択してビルドし、余分なコミットを作成します。査読者として、プルリクエストがあったことを知らせる電子メールが届きます。私は行くためにリンクをクリックして見て、私がコミットに行くときに私はジェンキンスのビルドレポートへのリンクを参照してください。

これは完璧ではありませんが、機能します。確かに、TFSにはその機能がないため、諦めるよりも優れた解決策です。

-1

あなたの説明によれば、TFSからJenkinsをトリガーし、Jenkinsのビルド結果をTFSに公開したいとします。

サービスフックを使用すると、tfsプロジェクトでイベントが発生したときに他のサービスでタスクを実行できます。しかし、TFSは、ビルド定義のビルドレポートのみを提供します。 TFS側では、Jenkinsのビルド結果をTFSに公開するような機能はありません。

+0

これは少し敗者です。私が言うように、私はJenkinsビルドを呼び出すTFSビルドの作成を検討しました。今朝私はJenkinsに、Jenkinsのビルド結果へのリンクを含むプルリクエストにコミットを追加さ​​せてもらいました。 –