我有一个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生成新的指标文件,以便将新创建的拉取请求指标与它进行比较?
如果我还没有发现这种模式/练习的通用名称,那么奖励积分。
答案 0 :(得分:1)
Travis CI仅提取您正在测试的特定分支,因此在分支feature
到master
的PR构建中,git checkout --branch=feature ...
在构建开始时完成。
如果要与master
进行比较,则还需要获取主分支。这可能可以通过git fetch --branch=master --depth=3
实现。
之后,您可以使用进行比较所需的常规工具。
请注意,如果您在私人存储库中,则最初用于克隆存储库的凭据将在您fetch
时被删除。如果是这种情况,请查看docs以验证与GitHub交互的可能性。