forked from puppetlabs/facter
/
Rakefile
96 lines (79 loc) · 2.45 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# Rakefile for facter
require 'facter'
require 'rake'
require 'rake/packagetask'
require 'rake/gempackagetask'
FILES = FileList[
'[A-Z]*',
'bin/**/*',
'lib/**/*',
'conf/**/*',
'etc/**/*',
]
spec = Gem::Specification.new do |spec|
spec.platform = Gem::Platform::RUBY
spec.name = 'facter'
spec.files = FILES.to_a
spec.version = Facter::FACTERVERSION
spec.summary = 'Facter, a system inventory tool'
spec.author = 'Reductive Labs'
spec.email = 'puppet@reductivelabs.com'
spec.homepage = 'http://reductivelabs.com'
spec.rubyforge_project = 'facter'
spec.has_rdoc = true
spec.rdoc_options <<
'--title' << 'Facter - System Inventory Tool' <<
'--main' << 'README' <<
'--line-numbers'
end
Rake::PackageTask.new("facter", Facter::FACTERVERSION) do |pkg|
pkg.package_dir = 'pkg'
pkg.need_tar_gz = true
pkg.package_files = FILES.to_a
end
Rake::GemPackageTask.new(spec) do |pkg|
end
desc "Run the specs under spec/"
task :spec do
require 'spec'
require 'spec/rake/spectask'
# require 'rcov'
Spec::Rake::SpecTask.new do |t|
t.spec_opts = ['--format','s', '--loadby','mtime']
t.spec_files = FileList['spec/**/*.rb']
end
end
require 'rubygems'
gem 'ci_reporter'
require 'ci/reporter/rake/rspec'
require 'ci/reporter/rake/test_unit'
ENV['CI_REPORTS'] = 'results'
desc "Run CI RSpec tests"
task :ci_spec => ['ci:setup:rspec', :spec]
desc "Send patch information to the puppet-dev list"
task :mail_patches do
if Dir.glob("00*.patch").length > 0
raise "Patches already exist matching '00*.patch'; clean up first"
end
unless %x{git status} =~ /On branch (.+)/
raise "Could not get branch from 'git status'"
end
branch = $1
unless branch =~ %r{^([^\/]+)/([^\/]+)/([^\/]+)$}
raise "Branch name does not follow <type>/<parent>/<name> model; cannot autodetect parent branch"
end
type, parent, name = $1, $2, $3
# Create all of the patches
sh "git format-patch -C -M -s -n #{parent}..HEAD"
# And then mail them out.
# If we've got more than one patch, add --compose
if Dir.glob("00*.patch").length > 1
compose = "--compose"
else
compose = ""
end
# Now send the mail.
sh "git send-email #{compose} --no-chain-reply-to --no-signed-off-by-cc --suppress-from --no-thread --to puppet-dev@googlegroups.com 00*.patch"
# Finally, clean up the patches
sh "rm 00*.patch"
end