rake-n-bake 1.3.1 → 1.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.rspec +1 -0
- data/.semver +1 -1
- data/.travis.yml +1 -3
- data/Gemfile +4 -0
- data/Guardfile +82 -0
- data/README.md +5 -2
- data/history.rdoc +4 -0
- data/lib/semver_versioning.rb +23 -11
- data/lib/version.rb +1 -1
- data/spec/semver_versioning_spec.rb +69 -63
- data/spec/spec_helper.rb +35 -6
- data/tasks/{bundler_audit.rake → bundle-audit.rake} +3 -3
- data/tasks/ok.rake +32 -7
- data/tasks/semver.rake +7 -10
- data/tasks/traceroute.rake +34 -0
- metadata +7 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8b0e0c58e976c027c3e6d46c83ce7ef37c500f38
|
|
4
|
+
data.tar.gz: ca31e0d90434fa140cebfe2b8be41423599190b2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7721faaf07af6a408d7925e28c79acae9e0bbeada83ea7a23cc8864184456a62f54a28d9227b8d943bc83da5aa8970f116127949791bea37b6bb9cf4e6030547
|
|
7
|
+
data.tar.gz: 7380815b55cbe45c034a7c52b89978e3e872f09460f65a6dbf13409a0068361df0ac6ff1896d40da00d90159cedbde9b3fad0be5787653e0eb0f77147e3c9034
|
data/.gitignore
CHANGED
data/.rspec
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
--color
|
data/.semver
CHANGED
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
|
@@ -9,13 +9,17 @@ group :development, :test do
|
|
|
9
9
|
gem 'bundler-audit'
|
|
10
10
|
gem 'cucumber'
|
|
11
11
|
gem 'fasterer'
|
|
12
|
+
gem 'guard-bundler'
|
|
13
|
+
gem 'guard-rspec'
|
|
12
14
|
gem 'metric_fu'
|
|
13
15
|
gem 'rake'
|
|
14
16
|
gem 'rspec'
|
|
15
17
|
gem 'rubocop'
|
|
16
18
|
gem 'rubycritic'
|
|
19
|
+
gem 'pry-byebug'
|
|
17
20
|
gem 'semver2'
|
|
18
21
|
gem 'simplecov'
|
|
19
22
|
gem 'term-ansicolor', '~> 1.3'
|
|
20
23
|
gem 'timecop'
|
|
24
|
+
gem 'traceroute'
|
|
21
25
|
end
|
data/Guardfile
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# A sample Guardfile
|
|
2
|
+
# More info at https://github.com/guard/guard#readme
|
|
3
|
+
|
|
4
|
+
## Uncomment and set this to only include directories you want to watch
|
|
5
|
+
# directories %w(app lib config test spec features) \
|
|
6
|
+
# .select{|d| Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist")}
|
|
7
|
+
|
|
8
|
+
## Note: if you are using the `directories` clause above and you are not
|
|
9
|
+
## watching the project directory ('.'), then you will want to move
|
|
10
|
+
## the Guardfile to a watched dir and symlink it back, e.g.
|
|
11
|
+
#
|
|
12
|
+
# $ mkdir config
|
|
13
|
+
# $ mv Guardfile config/
|
|
14
|
+
# $ ln -s config/Guardfile .
|
|
15
|
+
#
|
|
16
|
+
# and, you'll have to watch "config/Guardfile" instead of "Guardfile"
|
|
17
|
+
|
|
18
|
+
guard :bundler do
|
|
19
|
+
require 'guard/bundler'
|
|
20
|
+
require 'guard/bundler/verify'
|
|
21
|
+
helper = Guard::Bundler::Verify.new
|
|
22
|
+
|
|
23
|
+
files = ['Gemfile']
|
|
24
|
+
files += Dir['*.gemspec'] if files.any? { |f| helper.uses_gemspec?(f) }
|
|
25
|
+
|
|
26
|
+
# Assume files are symlinked from somewhere
|
|
27
|
+
files.each { |file| watch(helper.real_path(file)) }
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Note: The cmd option is now required due to the increasing number of ways
|
|
31
|
+
# rspec may be run, below are examples of the most common uses.
|
|
32
|
+
# * bundler: 'bundle exec rspec'
|
|
33
|
+
# * bundler binstubs: 'bin/rspec'
|
|
34
|
+
# * spring: 'bin/rspec' (This will use spring if running and you have
|
|
35
|
+
# installed the spring binstubs per the docs)
|
|
36
|
+
# * zeus: 'zeus rspec' (requires the server to be started separately)
|
|
37
|
+
# * 'just' rspec: 'rspec'
|
|
38
|
+
|
|
39
|
+
guard :rspec, cmd: "bundle exec rspec" do
|
|
40
|
+
require "guard/rspec/dsl"
|
|
41
|
+
dsl = Guard::RSpec::Dsl.new(self)
|
|
42
|
+
|
|
43
|
+
# Feel free to open issues for suggestions and improvements
|
|
44
|
+
|
|
45
|
+
# RSpec files
|
|
46
|
+
rspec = dsl.rspec
|
|
47
|
+
watch(rspec.spec_helper) { rspec.spec_dir }
|
|
48
|
+
watch(rspec.spec_support) { rspec.spec_dir }
|
|
49
|
+
watch(rspec.spec_files)
|
|
50
|
+
|
|
51
|
+
# Ruby files
|
|
52
|
+
ruby = dsl.ruby
|
|
53
|
+
dsl.watch_spec_files_for(ruby.lib_files)
|
|
54
|
+
|
|
55
|
+
# Rails files
|
|
56
|
+
rails = dsl.rails(view_extensions: %w(erb haml slim))
|
|
57
|
+
dsl.watch_spec_files_for(rails.app_files)
|
|
58
|
+
dsl.watch_spec_files_for(rails.views)
|
|
59
|
+
|
|
60
|
+
watch(rails.controllers) do |m|
|
|
61
|
+
[
|
|
62
|
+
rspec.spec.("routing/#{m[1]}_routing"),
|
|
63
|
+
rspec.spec.("controllers/#{m[1]}_controller"),
|
|
64
|
+
rspec.spec.("acceptance/#{m[1]}")
|
|
65
|
+
]
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# Rails config changes
|
|
69
|
+
watch(rails.spec_helper) { rspec.spec_dir }
|
|
70
|
+
watch(rails.routes) { "#{rspec.spec_dir}/routing" }
|
|
71
|
+
watch(rails.app_controller) { "#{rspec.spec_dir}/controllers" }
|
|
72
|
+
|
|
73
|
+
# Capybara features specs
|
|
74
|
+
watch(rails.view_dirs) { |m| rspec.spec.("features/#{m[1]}") }
|
|
75
|
+
watch(rails.layouts) { |m| rspec.spec.("features/#{m[1]}") }
|
|
76
|
+
|
|
77
|
+
# Turnip features and steps
|
|
78
|
+
watch(%r{^spec/acceptance/(.+)\.feature$})
|
|
79
|
+
watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) do |m|
|
|
80
|
+
Dir[File.join("**/#{m[1]}.feature")][0] || "spec/acceptance"
|
|
81
|
+
end
|
|
82
|
+
end
|
data/README.md
CHANGED
|
@@ -39,7 +39,7 @@ task :default => [
|
|
|
39
39
|
:"bake:code_quality:all",
|
|
40
40
|
:"bake:rspec",
|
|
41
41
|
:"bake:coverage:check_specs",
|
|
42
|
-
:"bake:
|
|
42
|
+
:"bake:bundle-audit",
|
|
43
43
|
:"bake:rubocop",
|
|
44
44
|
:"bake:rubycritic",
|
|
45
45
|
:"bake:ok_rainbow",
|
|
@@ -54,7 +54,7 @@ Tasks are namespaced under `:bake` to prevent clashes. For example, the `:ok` ta
|
|
|
54
54
|
### :brakeman
|
|
55
55
|
Run [Brakeman](http://brakemanscanner.org/) to look for security issues on a Rails project
|
|
56
56
|
|
|
57
|
-
### :
|
|
57
|
+
### :bundle-audit
|
|
58
58
|
Check the current Gemfile.lock for gem versions with known security issues, courtesy of [Bundler Audit](https://github.com/rubysec/bundler-audit#readme)
|
|
59
59
|
|
|
60
60
|
### :check_external_dependencies
|
|
@@ -119,6 +119,9 @@ Runs [Rubocop](https://github.com/bbatsov/rubocop) over the project and lists vi
|
|
|
119
119
|
### :rubycritic
|
|
120
120
|
Runs the [RubyCritic](https://github.com/whitesmith/rubycritic) tool and generates a report about the health of your code
|
|
121
121
|
|
|
122
|
+
### :traceroute
|
|
123
|
+
Runs [Traceroute](https://rubygems.org/gems/traceroute), a tool for finding unused routes within [Rails](http://rubyonrails.org/) apps
|
|
124
|
+
|
|
122
125
|
Handy Tips for new tasks
|
|
123
126
|
------------------------
|
|
124
127
|
- All tasks loaded by `lib/rake_n_bake.rb` will have access to the `RakeNBake::AssistantBaker`. This is intended for truely common things, like logging out when a particular step runs or passes.
|
data/history.rdoc
CHANGED
data/lib/semver_versioning.rb
CHANGED
|
@@ -52,26 +52,38 @@ module RakeNBake
|
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
def self.update_history_file
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
File.open histf, 'w' do |f|
|
|
61
|
-
f.puts "== #{current_version} (#{Time.now.strftime "%d %B %Y"})"
|
|
62
|
-
f.puts
|
|
63
|
-
f.print current_history
|
|
64
|
-
end
|
|
65
|
-
`git add #{histf}`
|
|
55
|
+
%w[ history.rdoc CHANGELOG.md ]
|
|
56
|
+
.select {|file| File.exist? file}
|
|
57
|
+
.each do |file|
|
|
58
|
+
add_version_to_top(file)
|
|
59
|
+
`git add #{file}`
|
|
66
60
|
end
|
|
67
61
|
end
|
|
68
62
|
|
|
63
|
+
def self.update_version_rb
|
|
64
|
+
return unless File.exists?('lib/version.rb')
|
|
65
|
+
version = current_version.to_s.sub(/^v/,'')
|
|
66
|
+
version_string = "VERSION = '#{version}'"
|
|
67
|
+
version_file_content = File.read('lib/version.rb').sub(/VERSION = .*$/, version_string)
|
|
68
|
+
File.write('lib/version.rb', version_file_content)
|
|
69
|
+
`git add lib/version.rb`
|
|
70
|
+
end
|
|
71
|
+
|
|
69
72
|
def self.tag
|
|
70
73
|
v = current_version.to_s
|
|
71
74
|
`git add .semver && git commit -m 'Increment version to #{v}' && git tag #{v} -a -m '#{Time.now}'`
|
|
72
75
|
branch = `git symbolic-ref HEAD`[%r{.*/(.*)}, 1]
|
|
73
76
|
puts "To push the new tag, use 'git push origin #{branch} --tags'"
|
|
74
77
|
end
|
|
78
|
+
|
|
79
|
+
def self.add_version_to_top file
|
|
80
|
+
current_history = File.read file
|
|
81
|
+
File.open file, 'w' do |f|
|
|
82
|
+
f.puts "== #{current_version} (#{Time.now.strftime "%d %B %Y"})"
|
|
83
|
+
f.puts
|
|
84
|
+
f.print current_history
|
|
85
|
+
end
|
|
86
|
+
end
|
|
75
87
|
end
|
|
76
88
|
end
|
|
77
89
|
|
data/lib/version.rb
CHANGED
|
@@ -3,7 +3,13 @@ require production_code
|
|
|
3
3
|
require 'yaml'
|
|
4
4
|
|
|
5
5
|
describe RakeNBake::SemverVersioning do
|
|
6
|
-
|
|
6
|
+
before(:example) { SEMVER_FILES.map{|f| remove_file f} }
|
|
7
|
+
|
|
8
|
+
let(:changelog) { project_root_file 'CHANGELOG.md' }
|
|
9
|
+
let(:history_rdoc) { project_root_file 'history.rdoc' }
|
|
10
|
+
let(:semver) { project_root_file '.semver' }
|
|
11
|
+
|
|
12
|
+
let(:version) do
|
|
7
13
|
{
|
|
8
14
|
major: '1',
|
|
9
15
|
minor: '2',
|
|
@@ -11,32 +17,8 @@ describe RakeNBake::SemverVersioning do
|
|
|
11
17
|
special: '',
|
|
12
18
|
metadata: ''
|
|
13
19
|
}
|
|
14
|
-
}
|
|
15
|
-
before(:all) do
|
|
16
|
-
if File.exist? File.join(File.dirname(__FILE__), '../.semver')
|
|
17
|
-
@current_semver_file = File.read(File.join(File.dirname(__FILE__), '../.semver'), force: true)
|
|
18
|
-
end
|
|
19
|
-
if File.exist? File.join(File.dirname(__FILE__), '../history.rdoc')
|
|
20
|
-
@current_history_file = File.read(File.join(File.dirname(__FILE__), '../history.rdoc'), force: true)
|
|
21
|
-
end
|
|
22
20
|
end
|
|
23
21
|
|
|
24
|
-
after(:all) do
|
|
25
|
-
if @current_semver_file
|
|
26
|
-
File.write(File.join(File.dirname(__FILE__), '../.semver'), @current_semver_file, force: true)
|
|
27
|
-
end
|
|
28
|
-
if @current_history_file
|
|
29
|
-
File.write(File.join(File.dirname(__FILE__), '../history.rdoc'), @current_history_file, force: true)
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
before(:each) do
|
|
33
|
-
FileUtils.rm(File.join(File.dirname(__FILE__), '../.semver'), force: true)
|
|
34
|
-
FileUtils.rm(File.join(File.dirname(__FILE__), '../history.rdoc'), force: true)
|
|
35
|
-
end
|
|
36
|
-
after(:each) do
|
|
37
|
-
FileUtils.rm(File.join(File.dirname(__FILE__), '../.semver'), force: true)
|
|
38
|
-
FileUtils.rm(File.join(File.dirname(__FILE__), '../history.rdoc'), force: true)
|
|
39
|
-
end
|
|
40
22
|
describe '#current_version' do
|
|
41
23
|
context 'when there is no .semver file' do
|
|
42
24
|
it 'returns the current version' do
|
|
@@ -45,9 +27,7 @@ describe RakeNBake::SemverVersioning do
|
|
|
45
27
|
end
|
|
46
28
|
|
|
47
29
|
context 'when there is a .semver file' do
|
|
48
|
-
before
|
|
49
|
-
File.write(File.join(File.dirname(__FILE__), '../.semver'), YAML.dump(version))
|
|
50
|
-
end
|
|
30
|
+
before { File.write(semver, YAML.dump(version)) }
|
|
51
31
|
|
|
52
32
|
it 'returns the current version' do
|
|
53
33
|
expect(described_class.current_version.to_s).to eq 'v1.2.3'
|
|
@@ -56,9 +36,8 @@ describe RakeNBake::SemverVersioning do
|
|
|
56
36
|
end
|
|
57
37
|
|
|
58
38
|
describe 'inc_major' do
|
|
59
|
-
before
|
|
60
|
-
|
|
61
|
-
end
|
|
39
|
+
before { File.write(semver, YAML.dump(version)) }
|
|
40
|
+
|
|
62
41
|
it 'increases major and resets minor and patch' do
|
|
63
42
|
described_class.inc_major
|
|
64
43
|
expect(described_class.current_version.to_s).to eq 'v2.0.0'
|
|
@@ -66,9 +45,8 @@ describe RakeNBake::SemverVersioning do
|
|
|
66
45
|
end
|
|
67
46
|
|
|
68
47
|
describe 'inc_minor' do
|
|
69
|
-
before
|
|
70
|
-
|
|
71
|
-
end
|
|
48
|
+
before { File.write(semver, YAML.dump(version)) }
|
|
49
|
+
|
|
72
50
|
it 'increases minor and resets patch' do
|
|
73
51
|
described_class.inc_minor
|
|
74
52
|
expect(described_class.current_version.to_s).to eq 'v1.3.0'
|
|
@@ -76,9 +54,8 @@ describe RakeNBake::SemverVersioning do
|
|
|
76
54
|
end
|
|
77
55
|
|
|
78
56
|
describe 'inc_patch' do
|
|
79
|
-
before
|
|
80
|
-
|
|
81
|
-
end
|
|
57
|
+
before { File.write(semver, YAML.dump(version)) }
|
|
58
|
+
|
|
82
59
|
it 'increases minor and resets patch' do
|
|
83
60
|
described_class.inc_patch
|
|
84
61
|
expect(described_class.current_version.to_s).to eq 'v1.2.4'
|
|
@@ -86,9 +63,8 @@ describe RakeNBake::SemverVersioning do
|
|
|
86
63
|
end
|
|
87
64
|
|
|
88
65
|
describe 'prerelease' do
|
|
89
|
-
before
|
|
90
|
-
|
|
91
|
-
end
|
|
66
|
+
before { File.write(semver, YAML.dump(version)) }
|
|
67
|
+
|
|
92
68
|
it 'sets the prerelease to the supplied string' do
|
|
93
69
|
described_class.prerelease 'something'
|
|
94
70
|
expect(described_class.current_version.to_s).to eq 'v1.2.3-something'
|
|
@@ -96,9 +72,8 @@ describe RakeNBake::SemverVersioning do
|
|
|
96
72
|
end
|
|
97
73
|
|
|
98
74
|
describe 'inc_prerelease' do
|
|
99
|
-
before
|
|
100
|
-
|
|
101
|
-
end
|
|
75
|
+
before { File.write(semver, YAML.dump(version)) }
|
|
76
|
+
|
|
102
77
|
it 'increments major version and sets the prerelease to the supplied string' do
|
|
103
78
|
described_class.inc_prerelease 'something'
|
|
104
79
|
expect(described_class.current_version.to_s).to eq 'v2.0.0-something'
|
|
@@ -106,30 +81,29 @@ describe RakeNBake::SemverVersioning do
|
|
|
106
81
|
end
|
|
107
82
|
|
|
108
83
|
describe 'release' do
|
|
109
|
-
before
|
|
110
|
-
|
|
111
|
-
v[:special] = "a string"
|
|
112
|
-
File.write(File.join(File.dirname(__FILE__), '../.semver'), YAML.dump(v))
|
|
113
|
-
end
|
|
84
|
+
before { File.write(semver, YAML.dump( version.merge(special: "rc5") )) }
|
|
85
|
+
|
|
114
86
|
it 'removes the prerelease' do
|
|
115
|
-
described_class.release
|
|
116
|
-
|
|
87
|
+
expect{ described_class.release }
|
|
88
|
+
.to change{ described_class.current_version.to_s}
|
|
89
|
+
.from('v1.2.3-rc5')
|
|
90
|
+
.to('v1.2.3')
|
|
117
91
|
end
|
|
118
92
|
end
|
|
119
93
|
|
|
120
94
|
describe '#update_history_file' do
|
|
121
95
|
context 'when there is no history file' do
|
|
122
96
|
it 'does nothing' do
|
|
123
|
-
described_class.update_history_file
|
|
124
|
-
|
|
125
|
-
|
|
97
|
+
expect{ described_class.update_history_file }
|
|
98
|
+
.to_not change{ [history_rdoc, changelog].any?{|file| File.exists? file} }
|
|
99
|
+
.from(false)
|
|
126
100
|
end
|
|
127
101
|
end
|
|
128
102
|
|
|
129
103
|
context 'when there is a history.rdoc file' do
|
|
130
104
|
before do
|
|
131
|
-
File.write(
|
|
132
|
-
File.write(
|
|
105
|
+
File.write(semver, YAML.dump(version))
|
|
106
|
+
File.write(history_rdoc, '* Some changes')
|
|
133
107
|
end
|
|
134
108
|
|
|
135
109
|
after { File.unlink(File.join(File.dirname(__FILE__), '../history.rdoc')) }
|
|
@@ -137,30 +111,61 @@ describe RakeNBake::SemverVersioning do
|
|
|
137
111
|
it 'Adds the version number and date to the top of the file and adds it to git' do
|
|
138
112
|
expect(Object).to receive(:`).with('git add history.rdoc')
|
|
139
113
|
described_class.update_history_file
|
|
140
|
-
expect(File.read(
|
|
114
|
+
expect(File.read(history_rdoc).lines.first).to eq "== v1.2.3 (#{Time.now.strftime "%d %B %Y"})\n"
|
|
141
115
|
end
|
|
142
116
|
end
|
|
143
117
|
|
|
144
118
|
context 'when there is a CHANGELOG.md file' do
|
|
145
119
|
before do
|
|
146
|
-
File.write(
|
|
147
|
-
File.write(
|
|
120
|
+
File.write(semver, YAML.dump(version))
|
|
121
|
+
File.write(changelog, '* Some changes')
|
|
148
122
|
end
|
|
149
123
|
|
|
150
|
-
after { File.unlink(
|
|
124
|
+
after { File.unlink(changelog) }
|
|
151
125
|
|
|
152
126
|
it 'Adds the version number and date to the top of the file and adds it to git' do
|
|
153
127
|
expect(Object).to receive(:`).with('git add CHANGELOG.md')
|
|
154
128
|
described_class.update_history_file
|
|
155
|
-
expect(File.read(
|
|
129
|
+
expect(File.read(changelog).lines.first).to eq "== v1.2.3 (#{Time.now.strftime "%d %B %Y"})\n"
|
|
156
130
|
end
|
|
157
131
|
end
|
|
158
132
|
end
|
|
159
133
|
|
|
160
|
-
describe '
|
|
161
|
-
before
|
|
162
|
-
|
|
134
|
+
describe '#update_version_rb' do
|
|
135
|
+
before { File.write(project_root_file('.semver'), YAML.dump(version)) }
|
|
136
|
+
|
|
137
|
+
around do |example|
|
|
138
|
+
FileUtils.cp 'lib/version.rb', 'lib/version.rb.orig'
|
|
139
|
+
example.run
|
|
140
|
+
FileUtils.mv 'lib/version.rb.orig', 'lib/version.rb'
|
|
141
|
+
`git reset lib/version.rb`
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
it 'writes the version into lib/version.rb' do
|
|
145
|
+
expect{ described_class.update_version_rb }
|
|
146
|
+
.to change{ File.read('lib/version.rb').include? "VERSION = '1.2.3'" }
|
|
147
|
+
.from(false)
|
|
148
|
+
.to(true)
|
|
163
149
|
end
|
|
150
|
+
|
|
151
|
+
it 'does nothing if lib/version.rb does not exist' do
|
|
152
|
+
FileUtils.rm 'lib/version.rb'
|
|
153
|
+
expect{ described_class.update_version_rb }
|
|
154
|
+
.to_not change{ File.exists? 'lib/version.rb' }
|
|
155
|
+
.from(false)
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
it 'stages to change lib/version.rb to git' do
|
|
159
|
+
expect{ described_class.update_version_rb }
|
|
160
|
+
.to change{ `git status`.include? 'lib/version.rb' }
|
|
161
|
+
.from(false)
|
|
162
|
+
.to(true)
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
describe 'tag' do
|
|
167
|
+
before { File.write(project_root_file('.semver'), YAML.dump(version)) }
|
|
168
|
+
|
|
164
169
|
it 'tags with the curren semver release and outputs push instructions' do
|
|
165
170
|
expect(Object).to receive(:`).with("git add .semver && git commit -m 'Increment version to v1.2.3' && git tag v1.2.3 -a -m '#{Time.now}'")
|
|
166
171
|
expect(Object).to receive(:`).with('git symbolic-ref HEAD').and_return 'refs/heads/master'
|
|
@@ -168,5 +173,6 @@ describe RakeNBake::SemverVersioning do
|
|
|
168
173
|
described_class.tag
|
|
169
174
|
end
|
|
170
175
|
end
|
|
176
|
+
|
|
171
177
|
end
|
|
172
178
|
|
data/spec/spec_helper.rb
CHANGED
|
@@ -11,20 +11,49 @@ def production_code
|
|
|
11
11
|
'./'+ spec.gsub('_spec','').gsub(/spec/, 'lib')
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
def project_root_file name
|
|
15
|
+
File.join(File.dirname(__FILE__), '..', name)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def backup_file_name(name)
|
|
19
|
+
project_root_file(name) + '.orig'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def backup_file name
|
|
23
|
+
file = project_root_file(name)
|
|
24
|
+
backup = backup_file_name(name)
|
|
25
|
+
FileUtils.mv file, backup if File.exists?(file)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def restore_file name
|
|
29
|
+
file = project_root_file(name)
|
|
30
|
+
backup = backup_file_name(name)
|
|
31
|
+
FileUtils.mv backup, file if File.exists?(backup)
|
|
18
32
|
end
|
|
19
33
|
|
|
34
|
+
def remove_file name
|
|
35
|
+
FileUtils.rm project_root_file(name), force: true
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
SEMVER_FILES = [ '.semver', 'history.rdoc', 'CHANGELOG.md' ]
|
|
39
|
+
|
|
20
40
|
RSpec.configure do |config|
|
|
21
41
|
config.include ArubaDoubles
|
|
22
42
|
|
|
23
|
-
config.before :
|
|
43
|
+
config.before :suite do
|
|
24
44
|
Aruba::RSpec.setup
|
|
45
|
+
SEMVER_FILES.map{|f| backup_file f}
|
|
25
46
|
end
|
|
26
47
|
|
|
27
|
-
config.after :
|
|
48
|
+
config.after :suite do
|
|
49
|
+
SEMVER_FILES.map{|f| restore_file f}
|
|
28
50
|
Aruba::RSpec.teardown
|
|
29
51
|
end
|
|
30
52
|
end
|
|
53
|
+
|
|
54
|
+
SimpleCov.start do
|
|
55
|
+
add_filter '/vendor/'
|
|
56
|
+
add_filter '/spec/'
|
|
57
|
+
coverage_dir 'log/coverage/spec'
|
|
58
|
+
end
|
|
59
|
+
|
|
@@ -3,15 +3,15 @@ begin
|
|
|
3
3
|
|
|
4
4
|
namespace :bake do
|
|
5
5
|
desc 'Check Gemfile.lock for security issues'
|
|
6
|
-
task :
|
|
6
|
+
task :'bundle-audit' do
|
|
7
7
|
RakeNBake::AssistantBaker.log_step 'Checking gems for known security warnings'
|
|
8
|
-
|
|
8
|
+
exit 1 unless system('bundle exec bundle-audit')
|
|
9
9
|
end
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
rescue LoadError
|
|
13
13
|
|
|
14
|
-
tasks = %w[
|
|
14
|
+
tasks = %w[bundle-audit].map(&:to_sym)
|
|
15
15
|
|
|
16
16
|
namespace :bake do
|
|
17
17
|
tasks.each do |t|
|
data/tasks/ok.rake
CHANGED
|
@@ -26,14 +26,39 @@ namespace :bake do
|
|
|
26
26
|
|
|
27
27
|
desc 'Print the "ALL TESTS PASSED" message WITH A SWEET RAINBOW!!!'
|
|
28
28
|
task :ok_rainbow do
|
|
29
|
+
title = "ALL TESTS PASSED"
|
|
30
|
+
sement_size = %w[ - -- --- ----- ----------- ----- --- -- - ]
|
|
31
|
+
rows = [
|
|
32
|
+
[ :clear, :clear, :clear, :clear, :red, :clear, :clear, :clear, :clear ],
|
|
33
|
+
[ :clear, :clear, :clear, :red, :yellow, :red, :clear, :clear, :clear ],
|
|
34
|
+
[ :clear, :clear, :red, :yellow, :green, :yellow, :red, :clear, :clear ],
|
|
35
|
+
[ :clear, :red, :yellow, :green, :blue, :green, :yellow, :red, :clear ],
|
|
36
|
+
[ :red, :yellow, :green, :blue, :magenta, :blue, :green, :yellow, :red ],
|
|
37
|
+
[ :yellow, :green, :blue, :magenta, :clear, :magenta, :blue, :green, :yellow ],
|
|
38
|
+
[ :green, :blue, :magenta, :clear, :clear, :clear, :magenta, :blue, :green ],
|
|
39
|
+
[ :blue, :magenta, :text, :text, :text, :text, title, :magenta, :blue ],
|
|
40
|
+
]
|
|
41
|
+
|
|
29
42
|
puts
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
43
|
+
rows.each do |row|
|
|
44
|
+
text_block_length = 0
|
|
45
|
+
sement_size.zip(row).each do |size, colour|
|
|
46
|
+
string = size.gsub('-',' ')
|
|
47
|
+
case colour
|
|
48
|
+
when :clear
|
|
49
|
+
print C.clear(string)
|
|
50
|
+
when :text
|
|
51
|
+
text_block_length += size.length
|
|
52
|
+
when String
|
|
53
|
+
text_block_length += size.length
|
|
54
|
+
print C.bold, C.green(colour.center(text_block_length)), C.clear
|
|
55
|
+
else
|
|
56
|
+
cmd = "on_#{colour}".to_sym
|
|
57
|
+
print C.send(cmd, string)
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
puts
|
|
61
|
+
end
|
|
37
62
|
puts C.reset
|
|
38
63
|
end
|
|
39
64
|
end
|
data/tasks/semver.rake
CHANGED
|
@@ -7,13 +7,14 @@ begin
|
|
|
7
7
|
|
|
8
8
|
desc "Display the latest version (from .semver)"
|
|
9
9
|
task :version do
|
|
10
|
-
RakeNBake::SemverVersioning.current_version
|
|
10
|
+
puts RakeNBake::SemverVersioning.current_version
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
desc 'Increment major version in .semver (eg 1.2.3 => 2.0.0)'
|
|
14
14
|
task :major do
|
|
15
15
|
RakeNBake::SemverVersioning.inc_major
|
|
16
16
|
RakeNBake::SemverVersioning.update_history_file
|
|
17
|
+
RakeNBake::SemverVersioning.update_version_rb
|
|
17
18
|
RakeNBake::SemverVersioning.tag
|
|
18
19
|
end
|
|
19
20
|
|
|
@@ -21,6 +22,7 @@ begin
|
|
|
21
22
|
task :minor do
|
|
22
23
|
RakeNBake::SemverVersioning.inc_minor
|
|
23
24
|
RakeNBake::SemverVersioning.update_history_file
|
|
25
|
+
RakeNBake::SemverVersioning.update_version_rb
|
|
24
26
|
RakeNBake::SemverVersioning.tag
|
|
25
27
|
end
|
|
26
28
|
|
|
@@ -28,22 +30,16 @@ begin
|
|
|
28
30
|
task :patch do
|
|
29
31
|
RakeNBake::SemverVersioning.inc_patch
|
|
30
32
|
RakeNBake::SemverVersioning.update_history_file
|
|
33
|
+
RakeNBake::SemverVersioning.update_version_rb
|
|
31
34
|
RakeNBake::SemverVersioning.tag
|
|
32
35
|
end
|
|
33
36
|
|
|
34
|
-
desc 'Add or modify the current prerelease version (eg 1.2.3-rc1 => 1.2.3-rc2'
|
|
37
|
+
desc 'Add or modify the current prerelease version (eg 1.2.3-rc1 => 1.2.3-rc2)'
|
|
35
38
|
task :prerelease, [:version] do |task, args|
|
|
36
39
|
version = args[:version] || fail("Invalid usage: rake bake:semver:prerelase['release name']")
|
|
37
40
|
RakeNBake::SemverVersioning.prerelease version
|
|
38
41
|
RakeNBake::SemverVersioning.update_history_file
|
|
39
|
-
RakeNBake::SemverVersioning.
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
desc 'Increment major version and add a prerelease version (eg 1.2.3 => 2.0.0-rc1)'
|
|
43
|
-
task :inc_prerelease, [:version] do |task, args|
|
|
44
|
-
version = args[:version] || fail("Invalid usage: rake bake:semver:inc_prerelase['release name']")
|
|
45
|
-
RakeNBake::SemverVersioning.inc_prerelease version
|
|
46
|
-
RakeNBake::SemverVersioning.update_history_file
|
|
42
|
+
RakeNBake::SemverVersioning.update_version_rb
|
|
47
43
|
RakeNBake::SemverVersioning.tag
|
|
48
44
|
end
|
|
49
45
|
|
|
@@ -51,6 +47,7 @@ begin
|
|
|
51
47
|
task :release do
|
|
52
48
|
RakeNBake::SemverVersioning.release
|
|
53
49
|
RakeNBake::SemverVersioning.update_history_file
|
|
50
|
+
RakeNBake::SemverVersioning.update_version_rb
|
|
54
51
|
RakeNBake::SemverVersioning.tag
|
|
55
52
|
end
|
|
56
53
|
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
if defined? Rails
|
|
2
|
+
begin
|
|
3
|
+
require 'traceroute'
|
|
4
|
+
|
|
5
|
+
namespace :bake do
|
|
6
|
+
Rake::Task["traceroute"].invoke
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
rescue LoadError
|
|
10
|
+
tasks = %w[ traceroute ]
|
|
11
|
+
|
|
12
|
+
namespace :bake do
|
|
13
|
+
tasks.map(&:to_sym).each do |t|
|
|
14
|
+
desc 'Traceroute is not available (gem not installed)'
|
|
15
|
+
task t do
|
|
16
|
+
RakeNBake::AssistantBaker.log_missing_gem 'traceroute'
|
|
17
|
+
abort
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
else
|
|
23
|
+
tasks = %w[ traceroute ]
|
|
24
|
+
|
|
25
|
+
namespace :bake do
|
|
26
|
+
tasks.map(&:to_sym).each do |t|
|
|
27
|
+
desc 'Traceroute is not available Rails is required'
|
|
28
|
+
task t do
|
|
29
|
+
RakeNBake::AssistantBaker.log_warn 'Traceroute requires rails'
|
|
30
|
+
abort
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rake-n-bake
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
4
|
+
version: 1.3.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Richard Vickerstaff
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2016-03-01 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rake
|
|
@@ -49,10 +49,12 @@ extra_rdoc_files: []
|
|
|
49
49
|
files:
|
|
50
50
|
- ".bundle/config"
|
|
51
51
|
- ".gitignore"
|
|
52
|
+
- ".rspec"
|
|
52
53
|
- ".ruby-version"
|
|
53
54
|
- ".semver"
|
|
54
55
|
- ".travis.yml"
|
|
55
56
|
- Gemfile
|
|
57
|
+
- Guardfile
|
|
56
58
|
- README.md
|
|
57
59
|
- Rakefile
|
|
58
60
|
- bin/bundle-audit
|
|
@@ -87,7 +89,7 @@ files:
|
|
|
87
89
|
- spec/semver_versioning_spec.rb
|
|
88
90
|
- spec/spec_helper.rb
|
|
89
91
|
- tasks/brakeman.rake
|
|
90
|
-
- tasks/
|
|
92
|
+
- tasks/bundle-audit.rake
|
|
91
93
|
- tasks/check_external_deps.rake
|
|
92
94
|
- tasks/code_quality.rake
|
|
93
95
|
- tasks/coverage.rake
|
|
@@ -99,6 +101,7 @@ files:
|
|
|
99
101
|
- tasks/rubocop.rake
|
|
100
102
|
- tasks/ruby_critic.rake
|
|
101
103
|
- tasks/semver.rake
|
|
104
|
+
- tasks/traceroute.rake
|
|
102
105
|
homepage: https://github.com/RichardVickerstaff/rake-n-bake
|
|
103
106
|
licenses:
|
|
104
107
|
- MIT
|
|
@@ -120,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
120
123
|
version: '0'
|
|
121
124
|
requirements: []
|
|
122
125
|
rubyforge_project:
|
|
123
|
-
rubygems_version: 2.4.
|
|
126
|
+
rubygems_version: 2.4.8
|
|
124
127
|
signing_key:
|
|
125
128
|
specification_version: 4
|
|
126
129
|
summary: Common rake tasks, baked to perfection and ready to serve!
|