作为拉取请求检查的一部分,如何比较分支和主控之间的指标?

时间:2017-09-08 22:11:37

标签: ruby git github rake travis-ci

我有一个ruby库,用于“测量”文本文件并将测量值转储到文件中。每当有人发出拉取请求来更改github仓库中的文件时,我都会使用Travis CI来显示这些结果。我的目标是根据指标是否“改善”进行通过/失败检查。

当提交拉取请求并且Travis CI运行我的rakefile时,我想将拉取请求分支中的指标与主分支的指标进行比较。

假设我有一个rake任务,它在文本文件上运行指标并吐出结果,并且我可以比较两个结果文件。

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和rake来存储和检索 old_metrics_output.txt ,或者为master生成新的指标文件,以便将新创建的拉取请求指标与它进行比较?

如果我还没有发现这种模式/练习的通用名称,那么奖励积分。

1 个答案:

答案 0 :(得分:1)

Travis CI仅提取您正在测试的特定分支,因此在分支featuremaster的PR构建中,git checkout --branch=feature ...在构建开始时完成。

如果要与master进行比较,则还需要获取主分支。这可能可以通过git fetch --branch=master --depth=3实现。

之后,您可以使用进行比较所需的常规工具。

请注意,如果您在私人存储库中,则最初用于克隆存储库的凭据将在您fetch时被删除。如果是这种情况,请查看docs以验证与GitHub交互的可能性。