デイリービルド用にrubyでVisualStudioビルドスクリプトを作った

By | 2012/05/24

デイリービルドやるためにビルドスクリプトを書きました。
とりあえずVisualStudioだけです。

class VisualStudio2008Builder
public
  def initialize()
    @results = []
    @logs = []
  end
  def exec(solution, build_type_array)
    compiler = "C:/Program Files (x86)/Microsoft Visual Studio 9.0/Common7/IDE/devenv.exe"
    build_type_array.each do |t|
      compile(compiler, solution, t)
    end
  end
  def compile(compiler, solution, build_type)
    basename = File.basename(solution, ".*")
    log_file = "#{basename}log.txt"
    @results << system("#{compiler} /Out #{log_file} /rebuild #{build_type} #{solution}")
    File.open(log_file, "r"){ |f| @logs << f.read }
    File.delete(log_file)
  end
  def has_failure
    return @results.include?(false)
  end
  def result()
    return @results
  end
  def log()
    return @logs
  end

private

  @results
  @logs

end

solution = "../samples/samples.sln"
build_type = ["Debug", "Release"]

# build
builder = VisualStudio2008Builder.new
builder.exec(solution, build_type)

# print log
puts builder.log  if builder.has_failure

ソリューションとビルドタイプを指定するとビルドしてくれます。主な機能として

  • execでビルド
  • has_failureで失敗したビルドがあったかどうかをチェック
  • logでVisualStudioのログを取得

  • コメントを残す

    メールアドレスが公開されることはありません。