geordi 2.12.3 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/.travis.yml +8 -2
- data/CHANGELOG.md +8 -0
- data/Gemfile +2 -6
- data/Gemfile.lock +20 -25
- data/README.md +8 -28
- data/Rakefile +6 -10
- data/{bin → exe}/b +0 -0
- data/{bin → exe}/cap-all +0 -0
- data/{bin → exe}/console-for +0 -0
- data/{bin → exe}/cuc +0 -0
- data/{bin → exe}/cuc-show +0 -0
- data/{bin → exe}/cuc-vnc-setup +0 -0
- data/{bin → exe}/deploy-to-production +0 -0
- data/{bin → exe}/dump-for +0 -0
- data/{bin → exe}/dumple +0 -0
- data/{bin → exe}/geordi +0 -2
- data/{bin → exe}/gitpt +0 -0
- data/{bin → exe}/launchy_browser +0 -0
- data/{bin → exe}/load-dump +0 -0
- data/{bin → exe}/migrate-all +0 -0
- data/{bin → exe}/rs +0 -0
- data/{bin → exe}/run_tests +0 -0
- data/{bin → exe}/shell-for +0 -0
- data/{bin → exe}/tests +0 -0
- data/geordi.gemspec +23 -20
- data/lib/geordi/COMMAND_TEMPLATE +2 -3
- data/lib/geordi/capistrano_config.rb +7 -7
- data/lib/geordi/chromedriver_updater.rb +7 -7
- data/lib/geordi/cli.rb +1 -6
- data/lib/geordi/commands/_setup_vnc.rb +1 -1
- data/lib/geordi/commands/apache_site.rb +3 -3
- data/lib/geordi/commands/bundle_install.rb +2 -2
- data/lib/geordi/commands/capistrano.rb +2 -3
- data/lib/geordi/commands/chromedriver_update.rb +0 -9
- data/lib/geordi/commands/clean.rb +2 -4
- data/lib/geordi/commands/commit.rb +0 -1
- data/lib/geordi/commands/console.rb +2 -2
- data/lib/geordi/commands/create_database_yml.rb +2 -2
- data/lib/geordi/commands/create_databases.rb +2 -2
- data/lib/geordi/commands/cucumber.rb +20 -20
- data/lib/geordi/commands/delete_dumps.rb +9 -9
- data/lib/geordi/commands/deploy.rb +12 -13
- data/lib/geordi/commands/drop_databases.rb +12 -14
- data/lib/geordi/commands/dump.rb +5 -6
- data/lib/geordi/commands/eurest.rb +2 -2
- data/lib/geordi/commands/firefox.rb +3 -3
- data/lib/geordi/commands/png_optimize.rb +13 -12
- data/lib/geordi/commands/rake.rb +2 -2
- data/lib/geordi/commands/remove_executable_flags.rb +1 -1
- data/lib/geordi/commands/rspec.rb +6 -6
- data/lib/geordi/commands/security_update.rb +12 -12
- data/lib/geordi/commands/server.rb +5 -5
- data/lib/geordi/commands/setup.rb +5 -5
- data/lib/geordi/commands/shell.rb +2 -2
- data/lib/geordi/commands/unit.rb +1 -1
- data/lib/geordi/commands/update.rb +5 -5
- data/lib/geordi/commands/vnc.rb +1 -1
- data/lib/geordi/commands/with_rake.rb +1 -1
- data/lib/geordi/commands/yarn_install.rb +2 -2
- data/lib/geordi/cucumber.rb +28 -29
- data/lib/geordi/db_cleaner.rb +28 -28
- data/lib/geordi/dump_loader.rb +3 -3
- data/lib/geordi/firefox_for_selenium.rb +11 -12
- data/lib/geordi/gitpt.rb +13 -13
- data/lib/geordi/remote.rb +6 -6
- data/lib/geordi/util.rb +18 -24
- data/lib/geordi/version.rb +1 -1
- metadata +25 -42
- data/features/commit.feature +0 -17
- data/features/console.feature +0 -7
- data/features/cucumber.feature +0 -261
- data/features/deploy.feature +0 -66
- data/features/docker.feature +0 -86
- data/features/dump.feature +0 -34
- data/features/firefox.feature +0 -44
- data/features/server.feature +0 -31
- data/features/setup.feature +0 -11
- data/features/shell.feature +0 -78
- data/features/step_definitions/docker_command_steps.rb +0 -21
- data/features/step_definitions/miscellaneous_steps.rb +0 -11
- data/features/support/aruba.rb +0 -60
- data/features/support/env.rb +0 -9
- data/features/support/step_definitions/aruba_backport_steps.rb +0 -5
- data/lib/geordi/commands/docker.rb +0 -42
- data/lib/geordi/docker.rb +0 -116
data/lib/geordi/docker.rb
DELETED
@@ -1,116 +0,0 @@
|
|
1
|
-
require 'geordi/interaction'
|
2
|
-
require 'geordi/cucumber'
|
3
|
-
require 'yaml'
|
4
|
-
|
5
|
-
module Geordi
|
6
|
-
class Docker
|
7
|
-
DOCKER_COMPOSE_FILE = 'docker-compose.yml'.freeze
|
8
|
-
|
9
|
-
include Interaction
|
10
|
-
|
11
|
-
def setup
|
12
|
-
check_installation_and_config
|
13
|
-
announce('Building containers...')
|
14
|
-
if execute(:system, 'docker-compose', 'pull')
|
15
|
-
success('Build successful.')
|
16
|
-
else
|
17
|
-
fail('Build failed.')
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def shell(options = {})
|
22
|
-
check_installation_and_config
|
23
|
-
if options[:secondary]
|
24
|
-
attach_to_running_shell
|
25
|
-
else
|
26
|
-
run_shell
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def vnc
|
31
|
-
Cucumber.new.launch_vnc_viewer('::5967')
|
32
|
-
end
|
33
|
-
|
34
|
-
private
|
35
|
-
|
36
|
-
def attach_to_running_shell
|
37
|
-
running_containers = execute(:`, 'docker-compose ps').split("\n")
|
38
|
-
if (main_container_line = running_containers.grep(/_main_run/).first)
|
39
|
-
container_name = main_container_line.split(' ').first
|
40
|
-
execute(:exec, 'docker', 'exec', '-it', container_name, 'bash')
|
41
|
-
else
|
42
|
-
fail('Could not find a running shell. Start without --secondary first.')
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def run_shell
|
47
|
-
command = [:system, 'docker-compose', 'run', '--service-ports']
|
48
|
-
command += ssh_agent_forward
|
49
|
-
command += ['main']
|
50
|
-
execute(*command)
|
51
|
-
execute(:system, 'docker-compose', 'stop')
|
52
|
-
end
|
53
|
-
|
54
|
-
def execute(kind, *args)
|
55
|
-
if ENV['GEORDI_TESTING']
|
56
|
-
puts "Stubbed run #{args.join(' ')}"
|
57
|
-
if kind == :`
|
58
|
-
mock_parse(*args)
|
59
|
-
else
|
60
|
-
mock_run(*args)
|
61
|
-
end
|
62
|
-
else
|
63
|
-
send(kind, *args)
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
def mock_run(*args)
|
68
|
-
# exists just to be stubbed in tests
|
69
|
-
true
|
70
|
-
end
|
71
|
-
|
72
|
-
def mock_parse(*args)
|
73
|
-
# exists just to be stubbed in tests
|
74
|
-
'command output'
|
75
|
-
end
|
76
|
-
|
77
|
-
def check_installation_and_config
|
78
|
-
unless command_exists?('docker')
|
79
|
-
fail('You need to install docker first with `sudo apt install docker`. After installation please log out and back in to your system once.')
|
80
|
-
end
|
81
|
-
|
82
|
-
unless command_exists?('docker-compose')
|
83
|
-
fail('You need to install docker-compose first with `sudo apt install docker-compose`.')
|
84
|
-
end
|
85
|
-
|
86
|
-
unless docker_compose_config && (services = docker_compose_config['services']) && services.key?('main')
|
87
|
-
fail('Your project does not seem to be properly set up. Expected to find a docker-compose.yml which defines a service named "main".')
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
def command_exists?(command)
|
92
|
-
execute(:system, "which #{command} > /dev/null")
|
93
|
-
end
|
94
|
-
|
95
|
-
def docker_compose_config
|
96
|
-
if File.exists?(DOCKER_COMPOSE_FILE)
|
97
|
-
if YAML.respond_to?(:safe_load)
|
98
|
-
YAML.safe_load(File.read(DOCKER_COMPOSE_FILE))
|
99
|
-
else
|
100
|
-
YAML.load(File.read(DOCKER_COMPOSE_FILE))
|
101
|
-
end
|
102
|
-
end
|
103
|
-
rescue
|
104
|
-
false
|
105
|
-
end
|
106
|
-
|
107
|
-
def ssh_agent_forward
|
108
|
-
if (auth_sock = ENV['SSH_AUTH_SOCK'])
|
109
|
-
dirname = File.dirname(auth_sock)
|
110
|
-
['-v', "#{dirname}:#{dirname}", '-e', "SSH_AUTH_SOCK=#{auth_sock}"]
|
111
|
-
else
|
112
|
-
[]
|
113
|
-
end
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|