kender 0.1.6 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|