Rakefile - mcollective version 2.12.5

require 'packaging' Pkg::Util::RakeUtils.load_packaging_tasks

# Allow override of RELEASE using BUILD_NUMBER ENV = ENV if ENV

def announce(msg='')

    STDERR.puts "================"
    STDERR.puts msg
    STDERR.puts "================"

end

def safe_system *args

    raise RuntimeError, "Failed: #{args.join(' ')}" unless system(*args)

end

def move_artifacts

    mv("pkg", "build")

end

namespace :package do

    task :bootstrap do
      puts 'Bootstrap is no longer needed, using packaging-as-a-gem'
    end
    task :implode do
      puts 'Implode is no longer needed, using packaging-as-a-gem'
    end

end

desc “Cleanup” task :clean do

    rm_rf "build"
    rm_rf "doc"

end

desc “Build documentation” task :doc => :clean do

    Rake::Task["package:doc"].invoke

end

desc “Build a gem” task :gem => :clean do

    Rake::Task["gem"].reenable
    Rake::Task["package:gem"].invoke

end

desc “Create a tarball for this release” task :package => :clean do

    announce "Creating #{Pkg::Config.project}-#{Pkg::Config.version}.tar.gz"
    Rake::Task["package:tar"].invoke
    move_artifacts

end

desc “Run spec tests” task :test do

    sh "cd spec && rake"

end

desc “Run spec tests” task :test => :spec

namespace :ci do

    desc "Run the specs with CI options"
    task :spec do
      ENV["LOG_SPEC_ORDER"] = "true"
      sh %{rspec -r yarjuf -f JUnit -o result.xml -fp spec}
    end

end

desc “Creates the website as a tarball” task :website => :clean do

    FileUtils.mkdir_p("build/marionette-collective.org/html")

    Dir.chdir("website") do
      safe_system("jekyll ../build/marionette-collective.org/html")
    end

    unless File.exist?("build/marionette-collective.org/html/index.html")
      raise "Failed to build website"
    end

    Dir.chdir("build") do
      safe_system("tar -cvzf marionette-collective-org-#{Time.now.to_i}.tgz marionette-collective.org")
    end

end

desc 'run static analysis with rubocop' task(:rubocop) do

    if RUBY_VERSION !~ /1.8/
      require 'rubocop'
      cli = RuboCop::CLI.new
      exit cli.run(%w(-D -f s))
    else
      puts "Rubocop is disabled in ruby 1.8"
    end

end