propel 0.4.2 → 0.4.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.
- data/.gitignore +2 -1
- data/.rvmrc +1 -0
- data/.travis.yml +8 -0
- data/Gemfile.lock +5 -1
- data/README.md +2 -1
- data/lib/propel/git_repository.rb +5 -9
- data/lib/propel/runner.rb +4 -4
- data/lib/propel/version.rb +1 -1
- data/propel.gemspec +2 -0
- data/spec/propel/configuration_spec.rb +5 -8
- data/spec/propel/git_repository_spec.rb +61 -43
- data/spec/propel/runner_spec.rb +12 -7
- data/spec/spec_helper.rb +6 -0
- metadata +66 -65
data/.gitignore
CHANGED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm ruby-1.9.2@propel --create
|
data/.travis.yml
ADDED
data/Gemfile.lock
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
propel (0.4.
|
4
|
+
propel (0.4.2)
|
5
5
|
json
|
6
|
+
rake
|
6
7
|
|
7
8
|
GEM
|
8
9
|
remote: http://rubygems.org/
|
9
10
|
specs:
|
10
11
|
diff-lcs (1.1.2)
|
11
12
|
json (1.5.1)
|
13
|
+
rake (0.9.2)
|
12
14
|
rspec (2.5.0)
|
13
15
|
rspec-core (~> 2.5.0)
|
14
16
|
rspec-expectations (~> 2.5.0)
|
@@ -17,6 +19,7 @@ GEM
|
|
17
19
|
rspec-expectations (2.5.0)
|
18
20
|
diff-lcs (~> 1.1.2)
|
19
21
|
rspec-mocks (2.5.0)
|
22
|
+
stub_shell (0.0.2)
|
20
23
|
|
21
24
|
PLATFORMS
|
22
25
|
ruby
|
@@ -24,3 +27,4 @@ PLATFORMS
|
|
24
27
|
DEPENDENCIES
|
25
28
|
propel!
|
26
29
|
rspec (~> 2.5.0)
|
30
|
+
stub_shell (= 0.0.2)
|
data/README.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
# Propel
|
1
|
+
# Propel [](http://travis-ci.org/stackbuilders/propel)
|
2
|
+
|
2
3
|
|
3
4
|
Propel is a command that helps you to push to remote repositories while following best practices for
|
4
5
|
continuous integration. We believe that before you push to a shared git repository, you should check that
|
@@ -74,6 +74,7 @@ module Propel
|
|
74
74
|
end
|
75
75
|
|
76
76
|
private
|
77
|
+
|
77
78
|
def exit_with_error(message)
|
78
79
|
warn message
|
79
80
|
exit 1
|
@@ -81,14 +82,9 @@ module Propel
|
|
81
82
|
|
82
83
|
def git git_args
|
83
84
|
output, exitcode = run_command(git_args)
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
else
|
89
|
-
puts output
|
90
|
-
exit exitcode
|
91
|
-
end
|
85
|
+
logger.puts(output) unless exitcode == 0
|
86
|
+
|
87
|
+
Result.new(output, exitcode)
|
92
88
|
end
|
93
89
|
|
94
90
|
def run_command(cmd)
|
@@ -113,4 +109,4 @@ module Propel
|
|
113
109
|
@options[:verbose] ? git_operation : "#{git_operation} -q"
|
114
110
|
end
|
115
111
|
end
|
116
|
-
end
|
112
|
+
end
|
data/lib/propel/runner.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Propel
|
2
2
|
class Runner
|
3
3
|
attr_reader :logger, :repository
|
4
|
-
|
4
|
+
|
5
5
|
def initialize(args = [ ])
|
6
6
|
@repository = GitRepository.new
|
7
7
|
@options = Configuration.new(args, @repository).options
|
@@ -44,7 +44,7 @@ module Propel
|
|
44
44
|
if @options[:wait]
|
45
45
|
unless remote_build_green?
|
46
46
|
waited_for_build = true
|
47
|
-
|
47
|
+
|
48
48
|
say_duration do
|
49
49
|
logger.report_status("FAILING", :red)
|
50
50
|
logger.puts "Waiting until the CI build is green."
|
@@ -54,7 +54,7 @@ module Propel
|
|
54
54
|
end
|
55
55
|
|
56
56
|
else
|
57
|
-
|
57
|
+
|
58
58
|
alert_broken_build_and_exit unless remote_build_green?
|
59
59
|
end
|
60
60
|
|
@@ -98,4 +98,4 @@ If you're waiting for someone else to fix the build, use propel with --wait (-w)
|
|
98
98
|
Propel.new(@repository, @options[:rebase]).start
|
99
99
|
end
|
100
100
|
end
|
101
|
-
end
|
101
|
+
end
|
data/lib/propel/version.rb
CHANGED
data/propel.gemspec
CHANGED
@@ -22,7 +22,9 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.require_paths = ["lib"]
|
23
23
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
24
24
|
|
25
|
+
s.add_dependency('rake')
|
25
26
|
s.add_dependency('json')
|
26
27
|
|
27
28
|
s.add_development_dependency('rspec', ["~> 2.5.0"])
|
29
|
+
s.add_development_dependency('stub_shell', ["0.0.2"])
|
28
30
|
end
|
@@ -3,28 +3,28 @@ require 'spec_helper'
|
|
3
3
|
describe Propel::Configuration do
|
4
4
|
describe "#options" do
|
5
5
|
it "should prefer options given on the command line over options in a configuration file" do
|
6
|
-
configuration = Propel::Configuration.new(['--rebase'],
|
6
|
+
configuration = Propel::Configuration.new(['--rebase'], mock('git repository'))
|
7
7
|
configuration.stub!(:options_from_config_file).and_return(['--no-rebase'])
|
8
8
|
|
9
9
|
configuration.options[:rebase].should be_true
|
10
10
|
end
|
11
11
|
|
12
12
|
it "should not overwrite options from config file with defaults" do
|
13
|
-
configuration = Propel::Configuration.new([],
|
13
|
+
configuration = Propel::Configuration.new([], mock('git repository'))
|
14
14
|
configuration.stub!(:options_from_config_file).and_return(['--wait'])
|
15
15
|
|
16
16
|
configuration.options[:wait].should be_true
|
17
17
|
end
|
18
18
|
|
19
19
|
it "should set default options" do
|
20
|
-
configuration = Propel::Configuration.new([],
|
20
|
+
configuration = Propel::Configuration.new([], mock('git repository'))
|
21
21
|
configuration.stub!(:options_from_config_file).and_return([])
|
22
22
|
|
23
23
|
configuration.options.should == { :rebase => true, :fix_ci => false, :verbose => false, :wait => false, :color => false }
|
24
24
|
end
|
25
25
|
|
26
26
|
it "should correct the color setting if on a Windows 32 system that does not support color" do
|
27
|
-
configuration = Propel::Configuration.new(['--color'],
|
27
|
+
configuration = Propel::Configuration.new(['--color'], mock('git repository', project_root: '/tmp/foobar'))
|
28
28
|
configuration.stub(:ruby_platform).and_return('mswin')
|
29
29
|
configuration.stub!(:warn)
|
30
30
|
configuration.options[:color].should be_false
|
@@ -33,10 +33,7 @@ describe Propel::Configuration do
|
|
33
33
|
|
34
34
|
describe "#config_file" do
|
35
35
|
it "should return a file located in the project root" do
|
36
|
-
|
37
|
-
git_repository.stub!(:project_root).and_return('/foo/testdirectory')
|
38
|
-
|
39
|
-
configuration = Propel::Configuration.new([], git_repository)
|
36
|
+
configuration = Propel::Configuration.new([], mock('git repository', project_root: '/foo/testdirectory'))
|
40
37
|
configuration.config_file.should == '/foo/testdirectory/.propel'
|
41
38
|
end
|
42
39
|
end
|
@@ -18,11 +18,17 @@ describe Propel::GitRepository do
|
|
18
18
|
|
19
19
|
describe "when the process exits with a non-zero exit status" do
|
20
20
|
it "should print the process stdout to the console and exit with the exit code of the process" do
|
21
|
+
stub_shell do
|
22
|
+
command 'git pull --rebase' do
|
23
|
+
stdout 'my message'
|
24
|
+
exitstatus 127
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
21
28
|
git_repository = Propel::GitRepository.new
|
29
|
+
git_repository.logger = stub_logger
|
22
30
|
|
23
|
-
git_repository.should_receive(:
|
24
|
-
git_repository.should_receive(:exit).with(127)
|
25
|
-
git_repository.should_receive(:puts).with('my message')
|
31
|
+
git_repository.logger.should_receive(:puts).with('my message')
|
26
32
|
git_repository.pull(true)
|
27
33
|
end
|
28
34
|
end
|
@@ -33,7 +39,8 @@ describe Propel::GitRepository do
|
|
33
39
|
|
34
40
|
it "should warn the user and exit with a status of 1 when the head is detached" do
|
35
41
|
git_repository = Propel::GitRepository.new
|
36
|
-
|
42
|
+
|
43
|
+
stub_shell { command('git branch') { stdout "* (no branch)\nmaster\n" } }
|
37
44
|
git_repository.should_receive(:exit_with_error).with('You are operating with a detached HEAD, aborting.').and_raise(DetachedHeadTrap)
|
38
45
|
|
39
46
|
lambda {
|
@@ -43,7 +50,7 @@ describe Propel::GitRepository do
|
|
43
50
|
|
44
51
|
it "should not exit when on master branch" do
|
45
52
|
git_repository = Propel::GitRepository.new
|
46
|
-
|
53
|
+
stub_shell { command('git branch') { stdout "* master\notherbranch\n" } }
|
47
54
|
git_repository.should_not_receive(:exit_with_error)
|
48
55
|
|
49
56
|
lambda {
|
@@ -79,21 +86,23 @@ describe Propel::GitRepository do
|
|
79
86
|
git_repository = Propel::GitRepository.new
|
80
87
|
git_repository.logger = stub_logger
|
81
88
|
|
82
|
-
|
89
|
+
stub_shell { command('git push -q') { exitstatus 1; stdout 'it failed' } }
|
83
90
|
|
84
91
|
git_repository.stub!(:remote_config)
|
85
92
|
git_repository.stub!(:merge_config)
|
86
93
|
|
87
94
|
git_repository.should_receive(:warn).with("Your push failed! Please try again later.")
|
88
|
-
git_repository.should_receive(:exit).with(1)
|
89
95
|
|
90
|
-
|
96
|
+
lambda {
|
97
|
+
git_repository.push
|
98
|
+
}.should raise_error(SystemExit)
|
91
99
|
end
|
92
100
|
end
|
93
101
|
|
94
102
|
describe "#project_root" do
|
95
103
|
it "should return the root of the project" do
|
96
104
|
project_root = File.expand_path(File.join(File.dirname(__FILE__), %w[ .. .. ]))
|
105
|
+
stub_shell { command('git rev-parse --show-toplevel') { exitstatus 0; stdout project_root } }
|
97
106
|
Propel::GitRepository.new.project_root.should == project_root
|
98
107
|
end
|
99
108
|
end
|
@@ -113,12 +122,10 @@ describe Propel::GitRepository do
|
|
113
122
|
git_repository = Propel::GitRepository.new
|
114
123
|
git_repository.logger = stub_logger
|
115
124
|
|
116
|
-
|
117
|
-
|
118
|
-
git_repository.should_receive(:exit).with(1)
|
125
|
+
stub_shell { command('git fetch -q') { exitstatus 1; stdout 'it failed!' } }
|
119
126
|
git_repository.should_receive(:warn).with('Fetch of remote repository failed, exiting.')
|
120
127
|
|
121
|
-
git_repository.fetch!
|
128
|
+
lambda { git_repository.fetch! }.should raise_error SystemExit
|
122
129
|
end
|
123
130
|
|
124
131
|
it "should call fetch without the quiet option (-q) if --verbose is specified" do
|
@@ -126,7 +133,7 @@ describe Propel::GitRepository do
|
|
126
133
|
git_repository.logger = stub_logger
|
127
134
|
git_repository.options = {:verbose => true}
|
128
135
|
|
129
|
-
|
136
|
+
stub_shell { command('git fetch') { stdout 'it worked!' } }
|
130
137
|
|
131
138
|
git_repository.fetch!
|
132
139
|
end
|
@@ -135,29 +142,33 @@ describe Propel::GitRepository do
|
|
135
142
|
describe "#changed?" do
|
136
143
|
it "should return false when the remote branch has the same SHA1 as the local HEAD" do
|
137
144
|
git_repository = Propel::GitRepository.new
|
138
|
-
git_repository.
|
139
|
-
git_repository.stub!(:git).with("branch").and_return(Propel::GitRepository::Result.new("* master\n testbranch", 0))
|
140
|
-
|
141
|
-
git_repository.should_receive(:git).with("rev-parse HEAD").and_return(Propel::GitRepository::Result.new("ef2c8125b1923950a9cd776298516ad9ed3eb568", 0))
|
142
|
-
git_repository.should_receive(:git).with("config branch.master.remote").and_return(Propel::GitRepository::Result.new("origin", 0))
|
143
|
-
git_repository.should_receive(:git).with("config branch.master.merge").and_return(Propel::GitRepository::Result.new("refs/heads/master", 0))
|
145
|
+
git_repository.logger = stub_logger
|
144
146
|
|
145
|
-
|
147
|
+
stub_shell {
|
148
|
+
command('git fetch -q') { stdout 'ok, I fetched' }
|
149
|
+
command('git branch') { stdout "* master\n testbranch" }
|
150
|
+
command('git rev-parse HEAD') { stdout "ef2c8125b1923950a9cd776298516ad9ed3eb568\n" }
|
151
|
+
command('git config branch.master.remote') { stdout "origin\n" }
|
152
|
+
command('git config branch.master.merge') { stdout "refs/heads/master\n" }
|
153
|
+
command('git ls-remote origin refs/heads/master') { stdout "ef2c8125b1923950a9cd776298516ad9ed3eb568\n" }
|
154
|
+
}
|
146
155
|
|
147
156
|
git_repository.should_not be_changed
|
148
157
|
end
|
149
158
|
|
150
159
|
it "should return true when the remote branch has a different SHA1 than the local HEAD" do
|
151
160
|
git_repository = Propel::GitRepository.new
|
152
|
-
git_repository.
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
+
git_repository.logger = stub_logger
|
162
|
+
|
163
|
+
stub_shell {
|
164
|
+
command('git fetch -q') { stdout 'ok, I fetched' }
|
165
|
+
command('git branch') { stdout "* master\n testbranch" }
|
166
|
+
command('git rev-parse HEAD') { stdout "ef2c8125b1923950a9cd776298516ad9ed3eb568\n" }
|
167
|
+
command('git config branch.master.remote') { stdout "origin\n" }
|
168
|
+
command('git config branch.master.merge') { stdout "refs/heads/master\n" }
|
169
|
+
command('git ls-remote origin refs/heads/master') { stdout "bf2c8125b1923950a9cd776298516ad9ed3eb568\n" }
|
170
|
+
}
|
171
|
+
|
161
172
|
git_repository.should be_changed
|
162
173
|
end
|
163
174
|
end
|
@@ -165,8 +176,10 @@ describe Propel::GitRepository do
|
|
165
176
|
describe "#remote_config" do
|
166
177
|
it "should call the git command to determine the remote repository" do
|
167
178
|
git_repository = Propel::GitRepository.new
|
168
|
-
|
169
|
-
|
179
|
+
stub_shell {
|
180
|
+
command('git branch') { stdout "* master\n testbranch" }
|
181
|
+
command('git config branch.master.remote') { stdout "origin\n" }
|
182
|
+
}
|
170
183
|
|
171
184
|
git_repository.remote_config.should == 'origin'
|
172
185
|
end
|
@@ -174,34 +187,39 @@ describe Propel::GitRepository do
|
|
174
187
|
it "should raise an error if the remote repository cannot be determined" do
|
175
188
|
git_repository = Propel::GitRepository.new
|
176
189
|
|
177
|
-
|
178
|
-
|
190
|
+
stub_shell {
|
191
|
+
command('git branch') { stdout "* foo\n testbranch" }
|
192
|
+
command('git config branch.foo.remote') { stdout "\n" }
|
193
|
+
}
|
179
194
|
|
180
195
|
git_repository.should_receive(:warn).with("We could not determine the remote repository for branch 'foo.' Please set it with git config branch.foo.remote REMOTE_REPO.")
|
181
|
-
git_repository.should_receive(:exit).with(1)
|
182
196
|
|
183
|
-
git_repository.remote_config
|
197
|
+
lambda { git_repository.remote_config }.should raise_error SystemExit
|
184
198
|
end
|
185
199
|
end
|
186
200
|
|
187
201
|
describe "#merge_config" do
|
188
202
|
it "should call the git command to determine the remote branch" do
|
189
203
|
git_repository = Propel::GitRepository.new
|
190
|
-
|
191
|
-
|
192
|
-
|
204
|
+
|
205
|
+
stub_shell {
|
206
|
+
command('git branch') { stdout "* master\n testbranch" }
|
207
|
+
command('git config branch.master.merge') { stdout "refs/heads/master\n" }
|
208
|
+
}
|
209
|
+
|
193
210
|
git_repository.merge_config.should == 'refs/heads/master'
|
194
211
|
end
|
195
212
|
|
196
213
|
it "should raise an error if the remote branch cannot be determined" do
|
197
214
|
git_repository = Propel::GitRepository.new
|
198
215
|
|
199
|
-
|
200
|
-
|
201
|
-
|
216
|
+
stub_shell {
|
217
|
+
command('git branch') { stdout "* foo\n testbranch" }
|
218
|
+
command('git config branch.foo.merge') { stdout "\n" }
|
219
|
+
}
|
220
|
+
|
202
221
|
git_repository.should_receive(:warn).with("We could not determine the remote branch for local branch 'foo.' Please set it with git config branch.foo.merge REMOTE_BRANCH.")
|
203
|
-
git_repository.
|
204
|
-
git_repository.merge_config
|
222
|
+
lambda { git_repository.merge_config }.should raise_error SystemExit
|
205
223
|
end
|
206
224
|
end
|
207
225
|
end
|
data/spec/propel/runner_spec.rb
CHANGED
@@ -2,9 +2,10 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Propel::Runner do
|
4
4
|
before do
|
5
|
-
@git_repository =
|
5
|
+
@git_repository = mock('git repository', :changed? => true, :project_root => '/tmp/foobar', :current_branch => 'master',
|
6
|
+
:logger= => nil, :options= => nil, :ensure_attached_head! => true)
|
7
|
+
|
6
8
|
Propel::GitRepository.should_receive(:new).and_return(@git_repository)
|
7
|
-
@git_repository.stub!(:changed?).and_return(true)
|
8
9
|
end
|
9
10
|
|
10
11
|
describe ".start" do
|
@@ -21,13 +22,17 @@ describe Propel::Runner do
|
|
21
22
|
runner.start
|
22
23
|
}.should raise_error(DetachedHeadTrap)
|
23
24
|
end
|
24
|
-
|
25
|
+
|
25
26
|
it "should not call propel! if there is nothing to push" do
|
26
27
|
runner = Propel::Runner.new
|
27
28
|
runner.stub!(:logger).and_return(stub_logger)
|
28
29
|
|
29
30
|
@git_repository.should_receive(:changed?).and_return(false)
|
31
|
+
@git_repository.stub!(:remote_config).and_return('REMOTE REPO')
|
32
|
+
@git_repository.stub!(:merge_config).and_return('MERGE CONFIG')
|
33
|
+
|
30
34
|
runner.should_not_receive(:propel!)
|
35
|
+
|
31
36
|
runner.start
|
32
37
|
end
|
33
38
|
|
@@ -45,7 +50,7 @@ describe Propel::Runner do
|
|
45
50
|
|
46
51
|
it "should call propel! if the remote build is configured and passing" do
|
47
52
|
runner = Propel::Runner.new(%w[ --status-url http://ci.example.com/status ])
|
48
|
-
|
53
|
+
|
49
54
|
runner.stub!(:remote_build_configured?).and_return(true)
|
50
55
|
runner.stub!(:remote_build_green?).and_return(true)
|
51
56
|
|
@@ -76,7 +81,7 @@ describe Propel::Runner do
|
|
76
81
|
runner.should_not_receive(:propel!)
|
77
82
|
|
78
83
|
runner.stub!(:logger).and_return(stub_logger)
|
79
|
-
|
84
|
+
|
80
85
|
lambda {
|
81
86
|
runner.start
|
82
87
|
}.should raise_error(TestError)
|
@@ -106,7 +111,7 @@ describe Propel::Runner do
|
|
106
111
|
runner = Propel::Runner.new(%w[--wait])
|
107
112
|
runner.stub!(:remote_build_configured?).and_return true
|
108
113
|
runner.stub!(:logger).and_return(stub_logger)
|
109
|
-
|
114
|
+
|
110
115
|
runner.should_receive(:remote_build_green?).twice.and_return(false, true)
|
111
116
|
|
112
117
|
runner.should_receive(:say_duration).and_yield
|
@@ -115,4 +120,4 @@ describe Propel::Runner do
|
|
115
120
|
runner.start
|
116
121
|
end
|
117
122
|
end
|
118
|
-
end
|
123
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -5,6 +5,12 @@ $:.unshift(File.dirname(__FILE__) + '/../lib')
|
|
5
5
|
|
6
6
|
require 'propel'
|
7
7
|
|
8
|
+
require 'stub_shell'
|
9
|
+
|
10
|
+
RSpec.configure do |config|
|
11
|
+
config.include StubShell::TestHelpers
|
12
|
+
end
|
13
|
+
|
8
14
|
def stub_logger
|
9
15
|
double('logger', :report_operation => true, :report_status => true, :puts => true, :warn => true)
|
10
16
|
end
|
metadata
CHANGED
@@ -1,65 +1,76 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: propel
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.3
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 4
|
9
|
-
- 2
|
10
|
-
version: 0.4.2
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Justin Leitgeb
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
12
|
+
date: 2012-02-05 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
requirement: &70261464056860 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
|
24
|
+
version_requirements: *70261464056860
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: json
|
27
|
+
requirement: &70261474860640 !ruby/object:Gem::Requirement
|
25
28
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
segments:
|
31
|
-
- 0
|
32
|
-
version: "0"
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
33
|
type: :runtime
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: rspec
|
37
34
|
prerelease: false
|
38
|
-
|
35
|
+
version_requirements: *70261474860640
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rspec
|
38
|
+
requirement: &70261474860120 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
|
-
requirements:
|
40
|
+
requirements:
|
41
41
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
hash: 27
|
44
|
-
segments:
|
45
|
-
- 2
|
46
|
-
- 5
|
47
|
-
- 0
|
42
|
+
- !ruby/object:Gem::Version
|
48
43
|
version: 2.5.0
|
49
44
|
type: :development
|
50
|
-
|
51
|
-
|
52
|
-
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70261474860120
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: stub_shell
|
49
|
+
requirement: &70261474859600 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - =
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.0.2
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70261474859600
|
58
|
+
description: ! " The 'propel' script helps you to push your code to a remote server
|
59
|
+
while following Continuous Integration (CI)\n best practices. Propel first checks
|
60
|
+
the CI server to make sure it's passing, and then runs the local spec\n suite
|
61
|
+
and pushes changes. If the remote server is failing, just have propel wait for
|
62
|
+
it to pass while you get\n a coffee.\n"
|
63
|
+
email:
|
53
64
|
- justin@stackbuilders.com
|
54
|
-
executables:
|
65
|
+
executables:
|
55
66
|
- propel
|
56
67
|
extensions: []
|
57
|
-
|
58
68
|
extra_rdoc_files: []
|
59
|
-
|
60
|
-
files:
|
69
|
+
files:
|
61
70
|
- .gitignore
|
62
71
|
- .rspec
|
72
|
+
- .rvmrc
|
73
|
+
- .travis.yml
|
63
74
|
- Gemfile
|
64
75
|
- Gemfile.lock
|
65
76
|
- LICENSE
|
@@ -90,39 +101,29 @@ files:
|
|
90
101
|
- spec/propel/remote_build_spec.rb
|
91
102
|
- spec/propel/runner_spec.rb
|
92
103
|
- spec/spec_helper.rb
|
93
|
-
has_rdoc: true
|
94
104
|
homepage: http://github.com/stackbuilders/propel
|
95
105
|
licenses: []
|
96
|
-
|
97
106
|
post_install_message:
|
98
107
|
rdoc_options: []
|
99
|
-
|
100
|
-
require_paths:
|
108
|
+
require_paths:
|
101
109
|
- lib
|
102
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
110
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
103
111
|
none: false
|
104
|
-
requirements:
|
105
|
-
- -
|
106
|
-
- !ruby/object:Gem::Version
|
107
|
-
|
108
|
-
|
109
|
-
- 0
|
110
|
-
version: "0"
|
111
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - ! '>='
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: '0'
|
116
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
117
|
none: false
|
113
|
-
requirements:
|
114
|
-
- -
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
|
117
|
-
segments:
|
118
|
-
- 0
|
119
|
-
version: "0"
|
118
|
+
requirements:
|
119
|
+
- - ! '>='
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '0'
|
120
122
|
requirements: []
|
121
|
-
|
122
123
|
rubyforge_project:
|
123
|
-
rubygems_version: 1.
|
124
|
+
rubygems_version: 1.8.10
|
124
125
|
signing_key:
|
125
126
|
specification_version: 3
|
126
|
-
summary: Propel helps you to follow best practices for pushing code to a remote git
|
127
|
+
summary: Propel helps you to follow best practices for pushing code to a remote git
|
128
|
+
repo
|
127
129
|
test_files: []
|
128
|
-
|