geordi 2.12.3 → 3.0.0
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/.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
|