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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9b04665f9b041b4458192a789b097f5c455f5322
4
- data.tar.gz: e1f40457e04fdf6f3e0f6876bdbd00ed2983f5b7
3
+ metadata.gz: d71fb145146965402e35a8781270d335c6b48992
4
+ data.tar.gz: 021a46ce6f44072e351fc58dc926a6f86d6bb8e9
5
5
  SHA512:
6
- metadata.gz: 90869eb8058b2de453b8790520daf94e5d47ae63010b05cf1065c2590c3ff2138774b58360708d399a91cfac9527eeb71454b0d838a7ad001e5ee30ca6e2e797
7
- data.tar.gz: 93640654d91e1e1c1d23be975c15df7346a42df35c044e02e444917d8f059b788cb4eeee7536ffd8cacaa46d9384ba8e9f98d54b92d175eb1ae9c21304bc7331
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.0)
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.1)
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
@@ -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.linux?
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?
@@ -1,3 +1,3 @@
1
1
  module GitReflow
2
- VERSION = "0.7.0"
2
+ VERSION = "0.7.1"
3
3
  end
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
@@ -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
@@ -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.now).to_s,
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.0
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-14 00:00:00.000000000 Z
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