phase 1.0.0.rc2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d23b4d3bd81128770584534b887898b10ca94dd3
4
- data.tar.gz: 116bd3d5c7348e2bf1348fec4e6081f82d3f8748
3
+ metadata.gz: a5ff6bc6d3419a4db17beedd39f87f202ba5bf81
4
+ data.tar.gz: f6a4b30d2ce4b88efcffba57df2ba3e55bf344d4
5
5
  SHA512:
6
- metadata.gz: ed13ea799acffc32bf3ac1cb7932bf1fc61034904378eb54b0a419171043dbeb73a8e2832708e573e22623137c49b92c80a4ec3c44422d2ee0b7087003d5c960
7
- data.tar.gz: 2afba04a8973a9eb24488aa4db781ae09ade8ab6fb92c2b21c9dd91e313715768cb0dc9307306719aa999d4ad2131af4b1ac0b9b0f285cb26e0ece314a562b8c
6
+ metadata.gz: 35bce38c4b5a50a287b49adaff057b08991e5f8de223f9fd4b11b44be66dff0ce728fccaab3aeafea16f6b83d682708a4ba12584fc6c05551a102aca9c444421
7
+ data.tar.gz: 5f5bf3a268ede5bae6b1c6511e232adcdea5b00b8f14c2287540d4fa8a2aa3a1a347e2bdda792275b675caa3d3612365e691523063b5cf6abb4e76ac2fa9ded8
data/lib/phase/cli/ssh.rb CHANGED
@@ -1,6 +1,9 @@
1
1
  module Phase
2
2
  module CLI
3
3
  class SSH < Command
4
+
5
+ DEFAULT_CONNECTION_STRING = "ssh -A".freeze
6
+
4
7
  command :ssh do |c|
5
8
  c.syntax = "phase ssh [-i instance_id] [-n instance_name] [-r instance_role] [-u user] [-c conn_str] [username@instance_name|instance_id] [command...]"
6
9
 
@@ -12,7 +15,7 @@ module Phase
12
15
 
13
16
  c.description = "Connects to the the specified instance via SSH."
14
17
  c.action do |args, options|
15
- options.default role: ::Phase.config.bastion_role, conn: "ssh -A"
18
+ options.default role: ::Phase.config.bastion_role, conn: DEFAULT_CONNECTION_STRING
16
19
  new(args, options).run
17
20
  end
18
21
  end
@@ -24,6 +27,9 @@ module Phase
24
27
  ssh_command = args.last if args.count > 1
25
28
 
26
29
  if ssh_command
30
+ # Force pseudo-tty allocation for remote console/tail tasks
31
+ options.conn = "ssh -At" if options.conn == DEFAULT_CONNECTION_STRING
32
+
27
33
  log "running on instance #{ instance.resource.id }: `#{ ssh_command }'"
28
34
  exec "#{ options.conn } #{ username }@#{ instance.resource.dns_name } #{ ssh_command }"
29
35
  else
@@ -88,7 +88,7 @@ module Phase
88
88
  def prepare_clean_build
89
89
  remove_stale_build_dir!
90
90
  clone_local_git_repo
91
- set_file_modification_timestamps
91
+ # set_file_modification_timestamps
92
92
  end
93
93
 
94
94
  # This needs to run *before* the version gets updated so we know which version
@@ -24,25 +24,38 @@ module Phase
24
24
  private
25
25
 
26
26
  def deploy_image(hosts, options = {})
27
- image_name = docker_image_name
28
- server_count = 2 # FIXME: make this a config var
29
- run_flags = docker_run_flags
27
+ image_name = docker_image_name
28
+ server_count = 2 # FIXME: make this a config var
29
+ run_flags = docker_run_flags
30
+ delay_seconds = 35 # FIXME: make this a config var
30
31
 
31
32
  ::SSHKit::Coordinator.new(hosts).each(options) do
32
33
  execute(:docker, :pull, image_name)
33
34
 
34
35
  # TODO: fail if pending migrations
35
- execute(:docker, :run, run_flags, "--rm -it", image_name,
36
- "bundle exec rails runner '::ActiveRecord::Migrator.needs_migration? ? exit(1) : exit(0)'")
36
+ # execute(:docker, :run, run_flags, "--rm -it", image_name,
37
+ # "bundle exec rails runner '::ActiveRecord::Migrator.needs_migration? ? exit(1) : exit(0)'")
37
38
 
38
39
  server_count.times do |i|
40
+ progress_bar = ::ProgressBar.new("Deploying ##{i}", delay_seconds)
41
+
39
42
  server_name = "server-#{i}"
40
43
  port_number = 3000 + i # FIXME: make this a config var
41
44
 
42
45
  execute(:docker, :stop, server_name, raise_on_non_zero_exit: false)
43
46
  execute(:docker, :rm, server_name, raise_on_non_zero_exit: false)
44
47
 
45
- execute(:docker, :run, run_flags, "-p #{port_number}:3000 -d", image_name)
48
+ execute(:docker, :run, run_flags, "-p #{port_number}:3000 --name #{server_name} -d", image_name)
49
+
50
+ # TODO: test for server responding correctly
51
+ unless i == server_count - 1
52
+ delay_seconds.times do
53
+ sleep 1
54
+ progress_bar.inc
55
+ end
56
+ end
57
+
58
+ progress_bar.finish
46
59
  end
47
60
  end
48
61
  end
data/lib/phase/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Phase
2
- VERSION = "1.0.0.rc2"
2
+ VERSION = "1.0.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phase
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.rc2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piers Mainwaring
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-06-20 00:00:00.000000000 Z
12
+ date: 2015-06-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: commander
@@ -256,9 +256,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
256
256
  version: '2.0'
257
257
  required_rubygems_version: !ruby/object:Gem::Requirement
258
258
  requirements:
259
- - - ">"
259
+ - - ">="
260
260
  - !ruby/object:Gem::Version
261
- version: 1.3.1
261
+ version: '0'
262
262
  requirements: []
263
263
  rubyforge_project:
264
264
  rubygems_version: 2.2.3