kender 0.1.6 → 0.2.2
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 +8 -8
- data/features/rspec.feature +47 -0
- data/features/support/env.rb +8 -1
- data/lib/kender/command.rb +7 -8
- data/lib/kender/commands/i18n_tasks.rb +12 -0
- data/lib/kender/commands/jasmine.rb +3 -0
- data/lib/kender/commands/pb_duplicates.rb +11 -0
- data/lib/kender/commands/reek.rb +13 -0
- data/lib/kender/commands/rspec.rb +3 -1
- data/lib/kender/tasks/ci.rake +10 -10
- data/lib/kender/version.rb +1 -1
- metadata +10 -4
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YTQzODlkMWZjMzBiODQyZTZiNmQ4NTgxYWRmYzFiYTYyMTA5YmEwMg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZTg0Y2RiNDJmYTEzMjUwODVhZDI4MmEwZDhlZWU4Y2Q1ZjM4OWM2Zg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MzIzNjg3ZDZiNDMzM2U5N2MyNmZkZWI3YTU4MmM3ODkzZWUzZjk5YTBiYzg3
|
10
|
+
ODNiMGY1OWRkNmVmYzUyN2NlZDg4MzViOWRkN2U1ZWNlOWYyMjUzMTU3Nzhk
|
11
|
+
MGIwYmU1ZDA0YTk5MjZkZjMyNjZlNjlkMWRjNmQxMzE3ZmVhNDc=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MzhlMzQ3Nzk2NmNmODhlNmE4NjEwMjAxNWM3NWEwYmQ3M2JiNDFjNjBiNThj
|
14
|
+
NGFiNGRlZWYwNjdiMzhhYzJmYTMzODdkNWIyMjZlZGJiZDQ5NmEwMzlkMzAx
|
15
|
+
ZjM5ZjYzYTMyMjQ2M2I4YjM0Y2EyMjFkODc3ZDU5NmFhN2NlNmY=
|
@@ -0,0 +1,47 @@
|
|
1
|
+
@redo_bundle
|
2
|
+
Feature: Rspec
|
3
|
+
Kender is able to run specs using the rspec tool.
|
4
|
+
|
5
|
+
Background:
|
6
|
+
Given a file named "Gemfile" with:
|
7
|
+
"""
|
8
|
+
source 'https://rubygems.org'
|
9
|
+
gem 'rspec', '~> 2.14'
|
10
|
+
gem 'kender', path: '../../' # needed to use the latest code
|
11
|
+
gem 'dice_bag', '~>0.7'
|
12
|
+
"""
|
13
|
+
And I run `bundle install`
|
14
|
+
|
15
|
+
Scenario: The project has no specs but Rspec is executed
|
16
|
+
When I run `bundle exec rake ci`
|
17
|
+
Then it should pass with:
|
18
|
+
"""
|
19
|
+
0 examples, 0 failures
|
20
|
+
"""
|
21
|
+
|
22
|
+
Scenario: The project has some passing specs to run
|
23
|
+
Given a file named "spec/testing_spec.rb" with:
|
24
|
+
"""
|
25
|
+
describe "My software" do
|
26
|
+
it "works wonderfully" do
|
27
|
+
true
|
28
|
+
end
|
29
|
+
end
|
30
|
+
"""
|
31
|
+
When I run `bundle exec rake ci`
|
32
|
+
Then it should pass with:
|
33
|
+
"""
|
34
|
+
1 example, 0 failures
|
35
|
+
"""
|
36
|
+
|
37
|
+
Scenario: The project has some non passing specs to run
|
38
|
+
Given a file named "spec/testing_spec.rb" with:
|
39
|
+
"""
|
40
|
+
describe "My software" do
|
41
|
+
it "fails miserably" do
|
42
|
+
expect(false).to be_true
|
43
|
+
end
|
44
|
+
end
|
45
|
+
"""
|
46
|
+
When I run `bundle exec rake ci`
|
47
|
+
Then the exit status should not be 0
|
data/features/support/env.rb
CHANGED
@@ -2,5 +2,12 @@ require 'aruba/cucumber'
|
|
2
2
|
require 'kender'
|
3
3
|
|
4
4
|
Before do
|
5
|
-
|
5
|
+
#scenarios bundle to set up gems and it takes forever
|
6
|
+
@aruba_timeout_seconds = 30
|
7
|
+
end
|
8
|
+
|
9
|
+
# Unset bundle vars so when we create new bundle files in the scenarios
|
10
|
+
# we use those gems there instead of the ones loaded by kender gem
|
11
|
+
Before('@redo_bundle') do
|
12
|
+
unset_bundler_env_vars
|
6
13
|
end
|
data/lib/kender/command.rb
CHANGED
@@ -2,14 +2,10 @@ module Kender
|
|
2
2
|
# This class abstracts the shell commands we use
|
3
3
|
class Command
|
4
4
|
|
5
|
-
def name
|
5
|
+
def name
|
6
6
|
self.class.name.split("::").last.downcase.to_sym
|
7
7
|
end
|
8
8
|
|
9
|
-
def task_name
|
10
|
-
"ci:#{name}"
|
11
|
-
end
|
12
|
-
|
13
9
|
def available?
|
14
10
|
abort "Command failed: #{name}, availability status undefined."
|
15
11
|
end
|
@@ -24,7 +20,7 @@ module Kender
|
|
24
20
|
$?
|
25
21
|
end
|
26
22
|
|
27
|
-
class << self
|
23
|
+
class << self
|
28
24
|
|
29
25
|
def commands
|
30
26
|
@commands ||= []
|
@@ -34,8 +30,8 @@ module Kender
|
|
34
30
|
commands << klass.new
|
35
31
|
end
|
36
32
|
|
37
|
-
def
|
38
|
-
all.map(&:
|
33
|
+
def all_names
|
34
|
+
all.map(&:name)
|
39
35
|
end
|
40
36
|
|
41
37
|
def all
|
@@ -61,3 +57,6 @@ require_relative 'commands/shamus'
|
|
61
57
|
require_relative 'commands/test_unit'
|
62
58
|
require_relative 'commands/rspec'
|
63
59
|
require_relative 'commands/cucumber'
|
60
|
+
require_relative 'commands/reek'
|
61
|
+
require_relative 'commands/i18n_tasks'
|
62
|
+
require_relative 'commands/pb_duplicates'
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Kender
|
2
|
+
class I18nVerify < Command
|
3
|
+
def available?
|
4
|
+
Gem::Specification::find_all_by_name('i18n-tasks').any?
|
5
|
+
end
|
6
|
+
|
7
|
+
# The commands missing and unused produce informational reports only.
|
8
|
+
def command
|
9
|
+
'i18n-tasks missing; i18n-tasks unused'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -7,6 +7,9 @@ module Kender
|
|
7
7
|
# do not run if running shamus
|
8
8
|
return false if ENV['VALIDATE_PROJECT']
|
9
9
|
|
10
|
+
# make sure those gems were added
|
11
|
+
return false unless in_gemfile?("jasmine") && in_gemfile?("jasmine-phantom")
|
12
|
+
|
10
13
|
# verify jasmine and phantomjs are present
|
11
14
|
`phantomjs --version 2>&1 > /dev/null`
|
12
15
|
return false unless $?.success?
|
data/lib/kender/tasks/ci.rake
CHANGED
@@ -1,6 +1,3 @@
|
|
1
|
-
#make sure we require all the tools we need loaded in memory
|
2
|
-
Bundler.require(:default, :test)
|
3
|
-
|
4
1
|
require 'kender/configuration'
|
5
2
|
require 'kender/github'
|
6
3
|
require 'kender/command'
|
@@ -36,17 +33,20 @@ namespace :ci do
|
|
36
33
|
task :config => ['ci:env', 'ci:config_project', 'ci:setup_db']
|
37
34
|
|
38
35
|
desc "Run continuous integration tests with the current configuration"
|
39
|
-
task :run => ['ci:env']
|
36
|
+
task :run => ['ci:env'] do
|
37
|
+
#make sure we require all the tools we need loaded in memory
|
38
|
+
Kender::Command.all.each do |command|
|
39
|
+
command.execute
|
40
|
+
end
|
41
|
+
end
|
40
42
|
|
41
43
|
desc "Destroy resources created externally for the continuous integration run, e.g. drops databases"
|
42
44
|
task :clean => ['ci:env', 'ci:drop_db']
|
43
45
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
command.execute
|
49
|
-
end
|
46
|
+
desc "Shows a list of all the software Kender will call when ci:run is invoked."
|
47
|
+
task :list => ['ci:env'] do
|
48
|
+
puts "Kender will execute the following software:"
|
49
|
+
puts Kender::Command.all_names.join("\n")
|
50
50
|
end
|
51
51
|
|
52
52
|
# The following tasks are internal to us, without description, the user can not discover them
|
data/lib/kender/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kender
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Smith
|
@@ -31,14 +31,14 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - ~>
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 0.5.
|
34
|
+
version: 0.5.4
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - ~>
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: 0.5.
|
41
|
+
version: 0.5.4
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rake
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -62,6 +62,7 @@ extensions: []
|
|
62
62
|
extra_rdoc_files: []
|
63
63
|
files:
|
64
64
|
- features/install.feature
|
65
|
+
- features/rspec.feature
|
65
66
|
- features/scenarios.feature
|
66
67
|
- features/support/env.rb
|
67
68
|
- features/support/hooks.rb
|
@@ -71,7 +72,10 @@ files:
|
|
71
72
|
- lib/kender/commands/bundle_audit.rb
|
72
73
|
- lib/kender/commands/consistency_fail.rb
|
73
74
|
- lib/kender/commands/cucumber.rb
|
75
|
+
- lib/kender/commands/i18n_tasks.rb
|
74
76
|
- lib/kender/commands/jasmine.rb
|
77
|
+
- lib/kender/commands/pb_duplicates.rb
|
78
|
+
- lib/kender/commands/reek.rb
|
75
79
|
- lib/kender/commands/rspec.rb
|
76
80
|
- lib/kender/commands/shamus.rb
|
77
81
|
- lib/kender/commands/test_unit.rb
|
@@ -82,7 +86,8 @@ files:
|
|
82
86
|
- lib/kender/tasks/ci.rake
|
83
87
|
- lib/kender/version.rb
|
84
88
|
homepage:
|
85
|
-
licenses:
|
89
|
+
licenses:
|
90
|
+
- MIT
|
86
91
|
metadata: {}
|
87
92
|
post_install_message:
|
88
93
|
rdoc_options: []
|
@@ -107,6 +112,7 @@ summary: Kender is a library of rake tasks that provides a consistent framework
|
|
107
112
|
continuous integration (CI).
|
108
113
|
test_files:
|
109
114
|
- features/install.feature
|
115
|
+
- features/rspec.feature
|
110
116
|
- features/scenarios.feature
|
111
117
|
- features/support/env.rb
|
112
118
|
- features/support/hooks.rb
|