require 'rake' require 'github_api'

namespace :tddium do

desc "tddium environment pre-run setup task"
task :pre_hook do
  if TddiumStatusGithub.token && !TddiumStatusGithub.token.empty?
    begin
      TddiumStatusGithub.github.repos.statuses.create(TddiumStatusGithub.remote[0],
        TddiumStatusGithub.remote[1],
        TddiumStatusGithub.sha,
        :state => "pending",
        :description => "Running build ##{TddiumStatusGithub.session}.",
        :target_url => TddiumStatusGithub.url)
    rescue Github::Error::GithubError => e
      STDERR.puts("Caught Github error when updating status: #{e.message}")
    end
  end
end

desc "tddium environment post-build setup task"
task :post_build_hook do
  if TddiumStatusGithub.token && !TddiumStatusGithub.token.empty?
    case ENV['TDDIUM_BUILD_STATUS']
    when "passed"
      status = "success"
      description = "Build ##{TddiumStatusGithub.session} succeeded!"
    when "error"
      status = "error"
      description = "Build ##{TddiumStatusGithub.session} encountered an error."
    else
      status = "failure"
      description = "Build ##{TddiumStatusGithub.session} failed."
    end

    begin
      TddiumStatusGithub.github.repos.statuses.create(TddiumStatusGithub.remote[0],
        TddiumStatusGithub.remote[1],
        TddiumStatusGithub.sha,
        :state => status,
        :description => description,
        :target_url => TddiumStatusGithub.url)
    rescue Github::Error::GithubError => e
      STDERR.puts("Caught Github error when updating status: #{e.message}")
    end
  end
end

end