git_reflow 0.7.0 → 0.7.1
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 +2 -2
- data/lib/git_reflow/commands/stage.rb +31 -0
- data/lib/git_reflow/sandbox.rb +1 -1
- data/lib/git_reflow/version.rb +1 -1
- data/lib/git_reflow.rb +18 -0
- data/spec/git_reflow_spec.rb +37 -0
- data/spec/support/fake_github.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d71fb145146965402e35a8781270d335c6b48992
|
4
|
+
data.tar.gz: 021a46ce6f44072e351fc58dc926a6f86d6bb8e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 00e25a1a163fbe53bf386608f825d5c4e598ab38769ef2d38776326a6b6abd3a506c5db72d09d5524fd5d01cae7235554353d5b85824bba188217cb2933f37c5
|
7
|
+
data.tar.gz: 8657729034fa0cbdbc6f573b7571f002b9740ac9d3a322bff3fa0863eab55b0f1e57e56d842d1ae2641a21409408817e2360f4caa018620837d00d0fbf2b50e7
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
git_reflow (0.7.
|
4
|
+
git_reflow (0.7.1)
|
5
5
|
colorize (>= 0.7.0)
|
6
6
|
github_api (= 0.12.4)
|
7
7
|
gli (= 2.13.2)
|
@@ -30,7 +30,7 @@ GEM
|
|
30
30
|
descendants_tracker (0.0.4)
|
31
31
|
thread_safe (~> 0.3, >= 0.3.1)
|
32
32
|
diff-lcs (1.2.5)
|
33
|
-
faraday (0.9.
|
33
|
+
faraday (0.9.2)
|
34
34
|
multipart-post (>= 1.2, < 3)
|
35
35
|
faraday_middleware (0.9.2)
|
36
36
|
faraday (>= 0.7.4, < 0.10)
|
@@ -0,0 +1,31 @@
|
|
1
|
+
desc 'Deliver your changes to a staging server'
|
2
|
+
command :stage do |c|
|
3
|
+
c.desc 'deliver your feature branch to the staging branch'
|
4
|
+
c.action do |global_options, options, args|
|
5
|
+
feature_branch_name = GitReflow.current_branch
|
6
|
+
staging_branch_name = GitReflow::Config.get('reflow.staging-branch', local: true)
|
7
|
+
|
8
|
+
if staging_branch_name.empty?
|
9
|
+
staging_branch_name = GitReflow.ask("What's the name of your staging branch? (default: 'staging') ")
|
10
|
+
staging_branch_name = 'staging' if staging_branch_name.strip == ''
|
11
|
+
GitReflow::Config.set('reflow.staging-branch', staging_branch_name, local: true)
|
12
|
+
end
|
13
|
+
|
14
|
+
GitReflow.run_command_with_label "git checkout #{staging_branch_name}"
|
15
|
+
GitReflow.run_command_with_label "git pull origin #{staging_branch_name}"
|
16
|
+
|
17
|
+
if GitReflow.run_command_with_label "git merge #{feature_branch_name}", with_system: true
|
18
|
+
GitReflow.run_command_with_label "git push origin #{staging_branch_name}"
|
19
|
+
|
20
|
+
staged = GitReflow.deploy(:staging)
|
21
|
+
|
22
|
+
if staged
|
23
|
+
GitReflow.say "Deployed to Staging.", :success
|
24
|
+
else
|
25
|
+
GitReflow.say "There were issues deploying to staging.", :error
|
26
|
+
end
|
27
|
+
else
|
28
|
+
GitReflow.say "There were issues merging your feature branch to staging.", :error
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/git_reflow/sandbox.rb
CHANGED
@@ -39,7 +39,7 @@ module GitReflow
|
|
39
39
|
|
40
40
|
# WARNING: this currently only supports OS X and UBUNTU
|
41
41
|
def ask_to_open_in_browser(url)
|
42
|
-
if OS.
|
42
|
+
if OS.unix?
|
43
43
|
open_in_browser = ask "Would you like to open it in your browser? "
|
44
44
|
if open_in_browser =~ /^y/i
|
45
45
|
if OS.mac?
|
data/lib/git_reflow/version.rb
CHANGED
data/lib/git_reflow.rb
CHANGED
@@ -130,6 +130,24 @@ module GitReflow
|
|
130
130
|
end
|
131
131
|
end
|
132
132
|
|
133
|
+
def deploy(destination_server)
|
134
|
+
deploy_command = GitReflow::Config.get("reflow.deploy-to-#{destination_server}-command", local: true)
|
135
|
+
|
136
|
+
# first check is to allow for automated setup
|
137
|
+
if deploy_command.empty?
|
138
|
+
deploy_command = ask("Enter the command you use to deploy to #{destination_server} (leaving blank will skip deployment)")
|
139
|
+
end
|
140
|
+
|
141
|
+
# second check is to see if the user wants to skip
|
142
|
+
if deploy_command.empty?
|
143
|
+
say "Skipping deployment..."
|
144
|
+
false
|
145
|
+
else
|
146
|
+
GitReflow::Config.set("reflow.deploy-to-#{destination_server}-command", deploy_command, local: true)
|
147
|
+
run_command_with_label(deploy_command, with_system: true)
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
133
151
|
def git_server
|
134
152
|
@git_server ||= GitServer.connect provider: GitReflow::Config.get('reflow.git-server').strip, silent: true
|
135
153
|
end
|
data/spec/git_reflow_spec.rb
CHANGED
@@ -416,4 +416,41 @@ describe GitReflow do
|
|
416
416
|
end
|
417
417
|
end
|
418
418
|
end
|
419
|
+
|
420
|
+
context ".deploy(destination)" do
|
421
|
+
let(:deploy_command) { "bundle exec cap #{destination} deploy" }
|
422
|
+
subject { GitReflow.deploy(destination) }
|
423
|
+
|
424
|
+
before do
|
425
|
+
stub_command_line_inputs({
|
426
|
+
"Enter the command you use to deploy to #{destination} (leaving blank will skip deployment)" => "bundle exec cap #{destination} deploy"
|
427
|
+
})
|
428
|
+
end
|
429
|
+
|
430
|
+
context "staging" do
|
431
|
+
let(:destination) { "staging" }
|
432
|
+
|
433
|
+
it "sets the local git-config for reflow.deploy-to-staging-command" do
|
434
|
+
expect(GitReflow::Config).to receive(:set).with('reflow.deploy-to-staging-command', deploy_command, local: true)
|
435
|
+
subject
|
436
|
+
end
|
437
|
+
|
438
|
+
it "runs the staging deploy command" do
|
439
|
+
expect { subject }.to have_run_command(deploy_command)
|
440
|
+
end
|
441
|
+
end
|
442
|
+
|
443
|
+
context "production" do
|
444
|
+
let(:destination) { "production" }
|
445
|
+
|
446
|
+
it "sets the local git-config for reflow.deploy-to-staging-command" do
|
447
|
+
expect(GitReflow::Config).to receive(:set).with('reflow.deploy-to-production-command', deploy_command, local: true)
|
448
|
+
subject
|
449
|
+
end
|
450
|
+
|
451
|
+
it "runs the staging deploy command" do
|
452
|
+
expect { subject }.to have_run_command(deploy_command)
|
453
|
+
end
|
454
|
+
end
|
455
|
+
end
|
419
456
|
end
|
data/spec/support/fake_github.rb
CHANGED
@@ -113,7 +113,7 @@ class FakeGitHub
|
|
113
113
|
repo_name: self.repo_name,
|
114
114
|
comments: object_data[:comments],
|
115
115
|
pull_request_number: object_data[:number] || 1,
|
116
|
-
created_at: object_data[:created_at] || Time.
|
116
|
+
created_at: object_data[:created_at] || Time.parse('1pm')).to_s,
|
117
117
|
status: 201,
|
118
118
|
headers: {content_type: "application/json; charset=utf-8"})
|
119
119
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git_reflow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Valentino Stoll
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2015-10-
|
13
|
+
date: 2015-10-27 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: appraisal
|
@@ -262,6 +262,7 @@ files:
|
|
262
262
|
- lib/git_reflow/commands/deliver.rb
|
263
263
|
- lib/git_reflow/commands/review.rb
|
264
264
|
- lib/git_reflow/commands/setup.rb
|
265
|
+
- lib/git_reflow/commands/stage.rb
|
265
266
|
- lib/git_reflow/commands/start.rb
|
266
267
|
- lib/git_reflow/commands/status.rb
|
267
268
|
- lib/git_reflow/config.rb
|