2017-09-08 4 views
0

私はテキストファイルを '測定'し、その測定値をファイルにダンプするRubyライブラリを持っています。私はTravis CIを使用して、誰かがgithubリポジトリ内のファイルを変更するプルリクエストを行うたびにこれらの結果を表示します。私の目標は、メトリクスが「改善する」かどうかに基づいて合格/不合格のチェックを行うことです。プルリクエストチェックの一環として、ブランチとマスター間のメトリックを比較するにはどうすればよいですか?

プルリクエストが送信され、Travis CIがrakefileを実行すると、プルリクエストブランチのメトリックをマスターブランチのメトリックと比較したいと思います。

私は、テキストファイルでメトリックを実行し、結果を吐き出し、2つの結果ファイルを比較できるレーキタスクを持っていると仮定します。

task :run_metrics 
    ruby "lib/metered_object.rb" 
    @metered_object= MeteredObject.new(File.expand_path("./list.txt")) 
    @metered_object.set_targets({"metric1" => 10, "metric2" => 500}) 
    @metered_object.display_metrics >> pull_request_output 

    @metered_object.compare_metrics(pull_request_output.txt, old_metrics_output.txt) 
end 

どのように私はそれに新しく作成されたプル要求メトリックを比較するために、ストアのいずれかにgitのや熊手を使用して old_metrics_output.txt を取得、またはマスターのための新しいメトリックファイルを生成する必要がありますか?

このパターン/慣習の共通名がある場合は、私はまだ発見していません。 、git checkout --branch=feature ...は、ビルドの開始で行われmasterへの分岐featureのPRビルドでよう

答えて

1

トラヴィスCIは、あなたがテストしているだけで、特定の枝を引きます。

masterと比較する場合は、マスターブランチもフェッチする必要があります。これはおそらくgit fetch --branch=master --depth=3によって達成される可能性があります。

その後、比較に必要な通常のツールを使用することができます。

プライベートレポジトリにある場合、最初にリポジトリを複製するために使用された資格情報は、fetchできる時点で削除されます。あなたの場合は、docsを見て、GitHubとのやりとりを認証することができます。

関連する問題