Skip to content

Commit 5fd4a24

Browse files
committed
Standardize rake tasks
1 parent 81a579a commit 5fd4a24

File tree

2 files changed

+49
-30
lines changed

2 files changed

+49
-30
lines changed

Rakefile

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,28 @@ require 'rake'
55
require 'rubygems'
66
require 'rubygems/package_task'
77

8-
def run_command(cmd)
9-
output, status = Open3.capture2e(cmd)
10-
abort "Command failed! Command: #{cmd}, Output: #{output}" unless status.exitstatus.zero?
8+
RED = "\033[31m"
9+
GREEN = "\033[32m"
10+
RESET = "\033[0m"
11+
12+
def run_command(cmd, silent: true, print_command: false, report_status: false)
13+
puts "#{GREEN}Running #{cmd}#{RESET}" if print_command
14+
output = ''
15+
Open3.popen2e(cmd) do |_stdin, stdout_stderr, thread|
16+
stdout_stderr.each do |line|
17+
puts line unless silent
18+
output += line
19+
end
20+
exitcode = thread.value.exitstatus
21+
unless exitcode.zero?
22+
err = "#{RED}Command failed! Command: #{cmd}, Exit code: #{exitcode}"
23+
# Print details if we were running silent
24+
err += "\nOutput:\n#{output}" if silent
25+
err += RESET
26+
abort err
27+
end
28+
puts "#{GREEN}Command finished with status #{exitcode}#{RESET}" if report_status
29+
end
1130
output.chomp
1231
end
1332

tasks/tag.rake

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,34 @@
11
namespace :vox do
2-
desc 'Update version, create tag, and push to origin'
3-
task :tag, [:tag] do |_, args|
4-
abort 'You must provide a tag.' if args[:tag].nil? || args[:tag].empty?
5-
version = args[:tag]
6-
abort "#{version} does not appear to be a valid version string in x.y.z format" unless Gem::Version.correct?(version)
2+
desc 'Update version, create tag, and push to origin'
3+
task :tag, [:tag] do |_, args|
4+
abort 'You must provide a tag.' if args[:tag].nil? || args[:tag].empty?
5+
version = args[:tag]
6+
abort "#{version} does not appear to be a valid version string in x.y.z format" unless Gem::Version.correct?(version)
77

8-
# Update lib/puppet/version.rb and puppet.gemspec
9-
puts "Setting version to #{version}"
10-
data = File.read('lib/puppet/version.rb')
11-
data = data.sub(/PUPPETVERSION = '\d+\.\d+\.\d+'/, "PUPPETVERSION = '#{version}'")
12-
File.write('lib/puppet/version.rb', data)
13-
data = File.read('puppet.gemspec')
14-
data = data.sub(/spec.version = "\d+\.\d+\.\d+"/, "spec.version = \"#{version}\"")
15-
File.write('puppet.gemspec', data)
16-
run_command("git add lib/puppet/version.rb && git add puppet.gemspec && git commit -m 'Set version to #{version}'", true)
8+
# Update lib/puppet/version.rb and puppet.gemspec
9+
puts "Setting version to #{version}"
10+
data = File.read('lib/puppet/version.rb')
11+
data = data.sub(/PUPPETVERSION = '\d+\.\d+\.\d+'/, "PUPPETVERSION = '#{version}'")
12+
File.write('lib/puppet/version.rb', data)
13+
data = File.read('puppet.gemspec')
14+
data = data.sub(/spec.version = "\d+\.\d+\.\d+"/, "spec.version = \"#{version}\"")
15+
File.write('puppet.gemspec', data)
16+
run_command("git add lib/puppet/version.rb && git add puppet.gemspec && git commit -m 'Set version to #{version}'")
1717

18-
# Run git command to get short SHA and one line description of the commit on HEAD
19-
branch = run_command('git rev-parse --abbrev-ref HEAD', true)
20-
sha = run_command('git rev-parse --short HEAD', true)
21-
msg = run_command('git log -n 1 --pretty=%B', true)
18+
# Run git command to get short SHA and one line description of the commit on HEAD
19+
branch = run_command('git rev-parse --abbrev-ref HEAD')
20+
sha = run_command('git rev-parse --short HEAD')
21+
msg = run_command('git log -n 1 --pretty=%B')
2222

23-
puts "Branch: #{branch}"
24-
puts "SHA: #{sha}"
25-
puts "Commit: #{msg}"
23+
puts "Branch: #{branch}"
24+
puts "SHA: #{sha}"
25+
puts "Commit: #{msg}"
2626

27-
run_command("git tag -a #{version} -m '#{version}'")
27+
run_command("git tag -a #{version} -m '#{version}'")
2828

29-
unless !ENV['NOPUSH'].nil?
30-
puts "Pushing to origin"
31-
run_command("git push origin && git push origin #{version}")
32-
end
29+
unless !ENV['NOPUSH'].nil?
30+
puts "Pushing to origin"
31+
run_command("git push origin && git push origin #{version}")
3332
end
34-
end
33+
end
34+
end

0 commit comments

Comments
 (0)