2012-02-21 8 views
1

プロジェクトはgithubでホストされており、ジェンキンスのサーバをセットアップしました。問題はプロジェクトにたくさんのモジュールがあり、 perforceを使って特定のモジュールのソースコードを更新できるので、変更されたモジュールに属するジョブだけが起動されますが、gitはプロジェクト全体を単一のリポジトリとして扱い、どのモジュールがしたがって、Jenkinksは同じことをすることはできません。githubリポジトリを使ってジェンキンの個々のジョブをトリガする方法

私はgitサブモジュールとgitサブツリーについて調査しましたが、すべてが少し複雑であるようですが、これを簡単にアーカイブする方法はありますか?

答えて

1

git log--exit-codeのパラメータを参照してください。これは、--quietを意味します)。私はJenkins Gitプラグインがあなたにこの種のフィネスを与えるかどうかは分かりませんが、簡単なシェルスクリプトで簡単にやり遂げることができます。ディレクトリdirが改訂ABの間で変更した場合、私は、この目標を達成するためにジェンキンスプラグインを作成して、

if git log --quiet A..B -- dir ; then 
    # there are no changes in "dir" between rev A and B 
else 
    # there are changes 
fi 
1

今日、Jenkinsの通常のGitプラグインを利用することができます。ジョブの実行を監視し、無視するディレクトリを設定することができます。 リポジトリ内のプロジェクト/モジュールごとにビルド・ジョブがあり、関連するディレクトリが変更された場合にのみビルドを呼び出す場合に最適です(たとえば、モジュールのディレクトリと共有/共有モジュールディレクトリ)。

ポイントをホームにするために、私たちは共有モジュールのビルド・ジョブを持っていませんが、もちろん、すべてのモジュールに対してジョブがあります。そこで、モジュールのディレクトリとコモンズディレクトリだけを見るようにプラグインを設定しました。この方法では、プロジェクトはディレクトリへの関連するすべてのコミットで再構築されます。また、コモンズディレクトリへのコミットも行われます。

関連する問題