2016-06-11 8 views
0

2つの異なるフォルダソース(テンプレート、マークダウン、アセット)とサイト(HTMLとアセット)を持つ単一のgithubリポジトリから生成されたWebサイトを持っています。私はプッシュイベントのgithub webhookを設定して、生成されたサイトを同じgithubリポジトリにプル、ビルド、プッシュしますが、(webhookペイロードの)head commitのidがサーバー上のrev-parse'd HEAD。これは再帰的ループを防ぎ、すべては機能します(今のところ)。github webhook内の入れ子にされたプッシュイベントの回避

しかし、私は無限ループの可能性を心配し、より堅牢なソリューションを探しています。残念なことに、無関係な理由のために、私はソースとサイトの2つの別々のリポジトリを使って作業する選択肢を持っていません。

私はこのリモートビルド機能を単一のソース+サイトリポジトリに持つことができるソリューションはありますか?

ありがとうございます。

答えて

1

一般的な解決方法は、ビルドプロセスを開始してはならないコミットのコミットメッセージに特別なマーカーを付けることです。たとえば、サイトの新しいビルドを使用したコミットは「[ci skip] Site Rebuilt」となります。

トラビスciの場合、コミットに「[ci skip]」が含まれていればビルドされません。ジェンキンでは、これはポーリングgitのための "特定のメッセージとのコミット無視"設定で使用できます。 Bambooにはコミットメッセージを除外するように設定できる「変更セットを除外する」設定があります。

+0

お返事ありがとうございます。はい。私はそれを考慮しましたが、ヘッドコミットを比較してコミットメッセージを解析することに利点があるかどうかを知りたいでしょうか? –

+1

私はそれが地元の州に依存しないという最大の利点があると思います。 gitログを見ている人にとっては、何が起こっているのかがよりはっきりしています。 –

+0

真。それを実装します。 –

関連する問題