Gitのリポジトリの変更のためのハドソン無限ループポーリング?
-
21-09-2019 - |
質問
ハドソンのためのgitプラグインがうまく動作します。しかし、ビルドスクリプトは、リポジトリ内のファイルにバージョン番号を更新し、コミット、およびバックリポジトリにプッシュする必要があります。
ハドソンの世論調査は、次の変更をチェックするときに、それが再び構築するので、それはなど、他の変更をコミットし、変更をコミットし、「変更」を再度構築し、としてコミットその見ているので、は、それが無限ループに入ります。.. 。あなたがアイデアを得る。
私は、それを停止し、各リポジトリに「gitのログ」を実行し、最新のIDをコミット比較
のgit LS-ツリーHEADを使用してまったく同じですまた、ハドソンは、変更を確認するには、このコマンドを実行します:
レフリー/リモコン/起源/ のgitのの/ +レフリー/ヘッドをフェッチ gitのLS-ツリーHEAD
自身がそのワークスペースリポジトリからコミットし、明らかに結果が一致LS-ツリーは、どのようにこのコマンドは変更があったとして判断することができるプッシュハドソンので
前にビルドを行うと、最新のコミットを持っていませんどのように比較することにLS-ツリーの結果を格納しなければならないようです。ああ。私がテストにコミット理論ことをオフにしてくださいすることができます。
むしろ修正よりもとにかく、ハドソンのためのgitのプラグインですべての問題、私はレポが同一であるとハドソンは、それが表示されますことというのが私のビルドの最後に確認するために何を行うことができます。
この問題を解決するにはどのように?任意のアイデア?
ウェイン
解決 2
との答えである!...
はGitのハドソンプラグインはすでにそれがうまく機能この機能を追加するために誰かによってフォークされました。それでも、私はソースをプルダウンし、マイナーな問題のカップルを修正しました。
今では見事に動作します。ビルドコミット、およびプッシュプラグインGitはそれが再び変更されている考え、ループなしでリポジトリに戻ります。
ワンダフル!
他の誰かがGithub.com上ハドソン-GIT-プラグインのtickzoomフォークのためにこの外観を必要としますが、すでにメインプロジェクトに再び統合されているかどうかを確認した場合。コミッターは、彼がフォークを組み合わせることに興味を持って、計画したと述べています。
ウェイン
他のヒント
あなたのビルドシステムは、あなたのリビジョン管理システムとの任意の書き込みの相互作用を持つべきではありません。それは最も確かにいけないのプッシュのこれらの変更を自動的ます。
あなたのビルドシステムは、の現在のリビジョンは何であるか(例えばgit describe
、経由)のgitのを求めることができます。それ以外は冗長でエラーが発生しやすくなります。
あなたは考えるかもしれもう一つは、変更のためのポーリングではありません。それは動作するように愚かな方法のように思えます。 (確かに、私はかなりのすべてがイベントでトリガされたことに慣れヘビーBuildbotのユーザーです。)
それが変化したときに、ポーリングされていますgitのレポは知っています。それだけで、すぐにそれに基づいてビルドを開始するためにCIシステムを教えてください。あなたは早く構築しますと、彼らはすべてのトリガしているので、あなたが正当な理由なく多くの作業を行っているの周りに座って、あなたのコンピュータを持っていません。