无法启动build runner:在工作目录中找不到Gemfile

时间:2015-05-06 14:24:48

标签: ruby teamcity rake-task rakefile albacore

我制作了一个Rakefile来构建我的ASP.NET解决方案并运行测试用例。 (我的Rakefile需要Albacore,我正在使用Windows) 在 TeamCity 中,我使用跑步者类型创建了一个构建步骤:Rake。

在Team City中运行构建步骤时,我收到此错误:

  

在工作目录中找不到Gemfile:'C:\ TeamCity \ buildAgent \ work \ 78c29356760be3bf'。   如果Gemfile位于其他目录中,请使用系统属性指定Gemfile相对路径:system.teamcity.rake.runner.custom.gemfile

以下是我的设置:

Build Step Zoomed

这是我的Rakefile:

require 'albacore'

clr_version = "v4.0.30319"
framework = File.join(ENV['windir'].dup, 'Microsoft.NET', 'Framework64', clr_version)

@solution = "../../Codex.Repository.sln"
@bin_folder = "App.Repositor

y/bin"
@obj_folder = "App.Repository/obj"
@test_bin = "UnitTestsRepository/bin"
@test_obj = "UnitTestsRepository/obj"
@tests_dll = "UnitTests.Repository/bin/Release/Codex.Repository.UnitTests.dll"
@nuget_packages = "../../packages"
@msbuild = File.join(framework, "msbuild.exe")
@vstest = File.join(ENV['VS12COMNIDE'].dup, 'CommonExtensions/Microsoft/TestWindow/vstest.console.exe')

task :default => [:clean, :restore, :build]
task :tests => [:unittest]

desc "Remove all binaries and NuGet packages"
task :clean do
  if(Dir.exists?(@nuget_packages))
    sh "rd \"#{@nuget_packages}\" /s /q"
  end
  if(Dir.exists?(@bin_folder))
    sh "rd \"#{@bin_folder}\" /s /q"
  end
  if(Dir.exists?(@obj_folder))
    sh "rd \"#{@obj_folder}\" /s /q"
  end
  if(Dir.exists?(@test_bin))
    sh "rd \"#{@test_bin}\" /s /q"
  end
  if(Dir.exists?(@test_obj))
    sh "rd \"#{@test_obj}\" /s /q"
  end
end

desc "Restoring NuGet packages"
task :restore do
  sh "nuget restore \"#{@solution}\""
end

desc "Building the solution"
task :build do
  sh "\"#{@msbuild}\" \"#{@solution}\" /p:VisualStudioVersion=12.0;Configuration=Release"
end

desc "Running the unit tests"
task :unittest do
  sh "\"#{@vstest}\" \"#{@tests_dll}\""
end

我该怎么办?我在哪里可以添加Gemfiles?

1 个答案:

答案 0 :(得分:0)

GemfileBundler使用的标准资源,用于将gem依赖项放入当前文件夹并围绕它们创建包装器:

http://bundler.io/

您需要在项目根文件夹中创建名为Gemfile的文件。定义gem的源代码,Bundler将从那里安装依赖项。

在步骤3中,您标记了捆绑器检查。这就是你的项目需要它的原因。如果您不需要,只需取消选中即可。