flash_flow 1.2.3.alpha → 1.2.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/Gemfile.lock +1 -1
- data/lib/flash_flow/data/base.rb +2 -1
- data/lib/flash_flow/data/collection.rb +11 -1
- data/lib/flash_flow/deploy.rb +20 -4
- data/lib/flash_flow/git.rb +5 -13
- data/lib/flash_flow/resolve.rb +4 -4
- data/lib/flash_flow/version.rb +1 -1
- data/test/lib/data/test_collection.rb +43 -7
- data/test/lib/test_deploy.rb +3 -3
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3ba7a7fe175b96cc420cab775f520719c7fc83f5
|
4
|
+
data.tar.gz: 7d49a193d1430a55a3b42a135e8ec35838bb47cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b11140dd538fef6a9b37e17d62ffe72174efe6efc723679f0b1982303a992c4de46ddd655fe1889a895dda67de6ca80bb6b6f27697e9a495692bbf81e1dfc0a
|
7
|
+
data.tar.gz: 29f7e831e2461baf974abf70fdff8ca3a21b34ff937ac993822c04da698963e6251cee1ae8abd791ef0f3493ed87924e97fb3e3316fe7e9b607b049fd835284e
|
data/Gemfile.lock
CHANGED
data/lib/flash_flow/data/base.rb
CHANGED
@@ -10,7 +10,8 @@ module FlashFlow
|
|
10
10
|
extend Forwardable
|
11
11
|
|
12
12
|
def_delegators :@collection, :add_story, :mergeable, :mark_deleted, :mark_success, :mark_failure,
|
13
|
-
:remove_from_merge, :add_to_merge, :failures, :
|
13
|
+
:remove_from_merge, :add_to_merge, :failures, :successes, :removals, :set_resolutions,
|
14
|
+
:to_a, :can_ship?, :branch_link
|
14
15
|
|
15
16
|
def initialize(branch_config, filename, git, opts={})
|
16
17
|
@git = git
|
@@ -94,7 +94,15 @@ module FlashFlow
|
|
94
94
|
end
|
95
95
|
|
96
96
|
def failures
|
97
|
-
|
97
|
+
current_branches.select { |branch| branch.fail? }
|
98
|
+
end
|
99
|
+
|
100
|
+
def successes
|
101
|
+
current_branches.select { |branch| branch.success? }
|
102
|
+
end
|
103
|
+
|
104
|
+
def removals
|
105
|
+
to_a.select { |branch| branch.removed? }
|
98
106
|
end
|
99
107
|
|
100
108
|
def fetch
|
@@ -113,12 +121,14 @@ module FlashFlow
|
|
113
121
|
|
114
122
|
def add_to_merge(remote, ref)
|
115
123
|
branch = record(remote, nil, ref)
|
124
|
+
branch.current_record = true
|
116
125
|
@collection_instance.add_to_merge(branch) if @collection_instance.respond_to?(:add_to_merge)
|
117
126
|
branch
|
118
127
|
end
|
119
128
|
|
120
129
|
def remove_from_merge(remote, ref)
|
121
130
|
branch = record(remote, nil, ref)
|
131
|
+
branch.current_record = true
|
122
132
|
branch.removed!
|
123
133
|
@collection_instance.remove_from_merge(branch) if @collection_instance.respond_to?(:remove_from_merge)
|
124
134
|
branch
|
data/lib/flash_flow/deploy.rb
CHANGED
@@ -51,7 +51,7 @@ module FlashFlow
|
|
51
51
|
commit_rerere
|
52
52
|
end
|
53
53
|
|
54
|
-
@git.copy_temp_to_merge_branch
|
54
|
+
@git.copy_temp_to_merge_branch(commit_message)
|
55
55
|
@git.delete_temp_merge_branch
|
56
56
|
@git.push_merge_branch
|
57
57
|
end
|
@@ -161,11 +161,11 @@ module FlashFlow
|
|
161
161
|
def format_errors
|
162
162
|
errors = []
|
163
163
|
branch_not_merged = nil
|
164
|
-
@data.failures.each do |
|
165
|
-
if
|
164
|
+
@data.failures.each do |branch|
|
165
|
+
if branch.ref == @local_git.working_branch
|
166
166
|
branch_not_merged = "ERROR: Your branch did not merge to #{@local_git.merge_branch}. Run 'flash_flow --resolve', fix the merge conflict(s) and then re-run this script\n"
|
167
167
|
else
|
168
|
-
errors << "WARNING: Unable to merge branch #{
|
168
|
+
errors << "WARNING: Unable to merge branch #{branch.remote}/#{branch.ref} to #{@local_git.merge_branch} due to conflicts."
|
169
169
|
end
|
170
170
|
end
|
171
171
|
errors << branch_not_merged if branch_not_merged
|
@@ -177,5 +177,21 @@ module FlashFlow
|
|
177
177
|
end
|
178
178
|
end
|
179
179
|
|
180
|
+
def commit_message
|
181
|
+
message =<<-EOS
|
182
|
+
Flash Flow run from branch: #{@local_git.working_branch}
|
183
|
+
|
184
|
+
Merged branches:
|
185
|
+
#{@data.successes.empty? ? 'None' : @data.successes.map(&:ref).join("\n")}
|
186
|
+
|
187
|
+
Failed branches:
|
188
|
+
#{@data.failures.empty? ? 'None' : @data.failures.map(&:ref).join("\n")}
|
189
|
+
|
190
|
+
Removed branches:
|
191
|
+
#{@data.removals.empty? ? 'None' : @data.removals.map(&:ref).join("\n")}
|
192
|
+
EOS
|
193
|
+
message.gsub(/'/, '')
|
194
|
+
end
|
195
|
+
|
180
196
|
end
|
181
197
|
end
|
data/lib/flash_flow/git.rb
CHANGED
@@ -68,7 +68,7 @@ module FlashFlow
|
|
68
68
|
end
|
69
69
|
|
70
70
|
def master_branch_contains?(ref)
|
71
|
-
run("branch --contains #{ref}")
|
71
|
+
run("branch --contains #{ref}", log: CmdRunner::LOG_CMD)
|
72
72
|
last_stdout.split("\n").detect { |str| str[2..-1] == master_branch }
|
73
73
|
end
|
74
74
|
|
@@ -208,17 +208,13 @@ module FlashFlow
|
|
208
208
|
run("push -f #{merge_remote} #{merge_branch}")
|
209
209
|
end
|
210
210
|
|
211
|
-
def copy_temp_to_merge_branch
|
211
|
+
def copy_temp_to_merge_branch(commit_message)
|
212
212
|
run("checkout #{temp_merge_branch}")
|
213
213
|
run("merge --strategy=ours --no-edit #{merge_branch}")
|
214
214
|
run("checkout #{merge_branch}")
|
215
215
|
run("merge #{temp_merge_branch}")
|
216
216
|
|
217
|
-
squash_commits
|
218
|
-
end
|
219
|
-
|
220
|
-
def commit_message(log)
|
221
|
-
"Flash Flow run from branch: #{working_branch}\n\n#{log}".gsub(/'/, '')
|
217
|
+
squash_commits(commit_message)
|
222
218
|
end
|
223
219
|
|
224
220
|
def delete_temp_merge_branch
|
@@ -248,11 +244,7 @@ module FlashFlow
|
|
248
244
|
|
249
245
|
private
|
250
246
|
|
251
|
-
def squash_commits
|
252
|
-
# There are three commits created by flash flow that we don't need in the message
|
253
|
-
run("log #{merge_remote}/#{merge_branch}..#{merge_branch}~3", log: CmdRunner::LOG_CMD)
|
254
|
-
log = last_stdout
|
255
|
-
|
247
|
+
def squash_commits(commit_message)
|
256
248
|
# Get all the files that differ between existing acceptance and new acceptance
|
257
249
|
run("diff --name-only #{merge_remote}/#{merge_branch} #{merge_branch}")
|
258
250
|
files = last_stdout.split("\n")
|
@@ -260,7 +252,7 @@ module FlashFlow
|
|
260
252
|
|
261
253
|
run("add -f #{files.map { |f| "\"#{Shellwords.escape(f)}\"" }.join(" ")}")
|
262
254
|
|
263
|
-
run("commit -m '#{commit_message
|
255
|
+
run("commit -m '#{commit_message}'")
|
264
256
|
end
|
265
257
|
|
266
258
|
def temp_merge_branch
|
data/lib/flash_flow/resolve.rb
CHANGED
@@ -16,8 +16,8 @@ module FlashFlow
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def manual_instructions
|
19
|
-
|
20
|
-
puts manual_not_merged_instructions
|
19
|
+
check_for_conflict
|
20
|
+
puts manual_not_merged_instructions
|
21
21
|
end
|
22
22
|
|
23
23
|
def start
|
@@ -60,7 +60,7 @@ module FlashFlow
|
|
60
60
|
end
|
61
61
|
|
62
62
|
def bash_message
|
63
|
-
puts "\nPlease fix the following conflicts and then 'exit':\n#{unresolved_conflicts.join("\n")}\n\n"
|
63
|
+
puts "\nNote: You are in a special flash_flow directory (#{Dir.pwd}). The files still open in your editor will not reflect the merge conflicts, open them from this shell to get the conflicted versions.\n\nPlease fix the following conflicts and then 'exit':\n#{unresolved_conflicts.join("\n")}\n\n"
|
64
64
|
end
|
65
65
|
|
66
66
|
def launch_bash
|
@@ -82,7 +82,7 @@ module FlashFlow
|
|
82
82
|
File.delete(filename)
|
83
83
|
end
|
84
84
|
|
85
|
-
def manual_not_merged_instructions
|
85
|
+
def manual_not_merged_instructions
|
86
86
|
<<-EOS
|
87
87
|
|
88
88
|
Run the following commands to fix the merge conflict and then re-run flash_flow:
|
data/lib/flash_flow/version.rb
CHANGED
@@ -265,18 +265,54 @@ module FlashFlow
|
|
265
265
|
end
|
266
266
|
|
267
267
|
def test_failures
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
@collection.mark_success(branch2)
|
273
|
-
@collection.mark_failure(branch3)
|
268
|
+
mark_branches
|
269
|
+
|
270
|
+
assert_equal(@collection.failures, [fail1, fail2])
|
271
|
+
end
|
274
272
|
|
275
|
-
|
273
|
+
def test_successes
|
274
|
+
mark_branches
|
275
|
+
|
276
|
+
assert_equal(@collection.successes, [success1, success2])
|
277
|
+
end
|
278
|
+
|
279
|
+
def test_removals
|
280
|
+
mark_branches
|
281
|
+
|
282
|
+
assert_equal(@collection.removals, [removed1])
|
276
283
|
end
|
277
284
|
|
278
285
|
private
|
279
286
|
|
287
|
+
def mark_branches
|
288
|
+
@collection.mark_failure(fail1)
|
289
|
+
@collection.mark_success(success1)
|
290
|
+
@collection.mark_failure(fail2)
|
291
|
+
@removed1 = @collection.remove_from_merge(removed1.remote, removed1.ref)
|
292
|
+
@collection.mark_success(success2)
|
293
|
+
@collection.mark_all_as_current
|
294
|
+
end
|
295
|
+
|
296
|
+
def fail1
|
297
|
+
@fail1 ||= Branch.new('111', '111', '111')
|
298
|
+
end
|
299
|
+
|
300
|
+
def fail2
|
301
|
+
@fail2 ||= Branch.new('333', '333', '333')
|
302
|
+
end
|
303
|
+
|
304
|
+
def success1
|
305
|
+
@success1 ||= Branch.new('222', '222', '222')
|
306
|
+
end
|
307
|
+
|
308
|
+
def success2
|
309
|
+
@success2 ||= Branch.new('555', '555', '555')
|
310
|
+
end
|
311
|
+
|
312
|
+
def removed1
|
313
|
+
@removed1 ||= Branch.new('444', '444', '444')
|
314
|
+
end
|
315
|
+
|
280
316
|
def old_branches
|
281
317
|
@old_branches ||= {
|
282
318
|
'the_origin_url/some_old_branch' => Branch.from_hash({'ref' => 'some_old_branch', 'remote_url' => 'the_origin_url', 'remote' => 'origin', 'created_at' => (Time.now - 3600), 'stories' => ['111']}),
|
data/test/lib/test_deploy.rb
CHANGED
@@ -49,12 +49,12 @@ module FlashFlow
|
|
49
49
|
end
|
50
50
|
|
51
51
|
def test_print_errors_with_no_errors
|
52
|
-
data.expect(:failures,
|
52
|
+
data.expect(:failures, [])
|
53
53
|
assert_equal(@deploy.format_errors, 'Success!')
|
54
54
|
end
|
55
55
|
|
56
56
|
def test_print_errors_when_current_branch_cant_merge
|
57
|
-
data.expect(:failures,
|
57
|
+
data.expect(:failures, [@branch])
|
58
58
|
@branch.fail!('some_random_sha')
|
59
59
|
|
60
60
|
current_branch_error = "ERROR: Your branch did not merge to test_acceptance. Run 'flash_flow --resolve', fix the merge conflict(s) and then re-run this script\n"
|
@@ -65,7 +65,7 @@ module FlashFlow
|
|
65
65
|
end
|
66
66
|
|
67
67
|
def test_print_errors_when_another_branch_cant_merge
|
68
|
-
data.expect(:failures,
|
68
|
+
data.expect(:failures, [@branch])
|
69
69
|
|
70
70
|
other_branch_error = "WARNING: Unable to merge branch origin/pushing_branch to test_acceptance due to conflicts."
|
71
71
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flash_flow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.3
|
4
|
+
version: 1.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Flashfunders
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: octokit
|
@@ -217,9 +217,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
217
217
|
version: '0'
|
218
218
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
219
219
|
requirements:
|
220
|
-
- - "
|
220
|
+
- - ">="
|
221
221
|
- !ruby/object:Gem::Version
|
222
|
-
version:
|
222
|
+
version: '0'
|
223
223
|
requirements: []
|
224
224
|
rubyforge_project:
|
225
225
|
rubygems_version: 2.2.2
|