kimurai 1.3.2 → 2.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/.rubocop.yml +9 -0
- data/CHANGELOG.md +29 -0
- data/Gemfile +2 -2
- data/README.md +478 -649
- data/Rakefile +6 -6
- data/bin/console +3 -4
- data/exe/kimurai +0 -1
- data/kimurai.gemspec +38 -37
- data/lib/kimurai/base/saver.rb +15 -19
- data/lib/kimurai/base/storage.rb +1 -1
- data/lib/kimurai/base.rb +42 -38
- data/lib/kimurai/base_helper.rb +5 -4
- data/lib/kimurai/browser_builder/mechanize_builder.rb +44 -38
- data/lib/kimurai/browser_builder/selenium_chrome_builder.rb +63 -51
- data/lib/kimurai/browser_builder/selenium_firefox_builder.rb +61 -55
- data/lib/kimurai/browser_builder.rb +7 -31
- data/lib/kimurai/capybara_configuration.rb +1 -1
- data/lib/kimurai/capybara_ext/driver/base.rb +50 -46
- data/lib/kimurai/capybara_ext/mechanize/driver.rb +51 -50
- data/lib/kimurai/capybara_ext/selenium/driver.rb +33 -29
- data/lib/kimurai/capybara_ext/session/config.rb +1 -1
- data/lib/kimurai/capybara_ext/session.rb +40 -38
- data/lib/kimurai/cli/generator.rb +15 -15
- data/lib/kimurai/cli.rb +52 -85
- data/lib/kimurai/core_ext/array.rb +2 -2
- data/lib/kimurai/core_ext/hash.rb +1 -1
- data/lib/kimurai/core_ext/numeric.rb +4 -4
- data/lib/kimurai/pipeline.rb +2 -1
- data/lib/kimurai/runner.rb +6 -6
- data/lib/kimurai/template/Gemfile +2 -2
- data/lib/kimurai/template/config/boot.rb +4 -4
- data/lib/kimurai/template/config/schedule.rb +15 -15
- data/lib/kimurai/template/spiders/application_spider.rb +14 -14
- data/lib/kimurai/version.rb +1 -1
- data/lib/kimurai.rb +7 -3
- metadata +58 -65
- data/.travis.yml +0 -5
- data/lib/kimurai/automation/deploy.yml +0 -54
- data/lib/kimurai/automation/setup/chromium_chromedriver.yml +0 -26
- data/lib/kimurai/automation/setup/firefox_geckodriver.yml +0 -20
- data/lib/kimurai/automation/setup/phantomjs.yml +0 -33
- data/lib/kimurai/automation/setup/ruby_environment.yml +0 -124
- data/lib/kimurai/automation/setup.yml +0 -44
- data/lib/kimurai/browser_builder/poltergeist_phantomjs_builder.rb +0 -171
- data/lib/kimurai/capybara_ext/poltergeist/driver.rb +0 -13
- data/lib/kimurai/cli/ansible_command_builder.rb +0 -71
- data/lib/kimurai/template/config/automation.yml +0 -13
metadata
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kimurai
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Victor Afanasev
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
13
|
+
name: activesupport
|
|
15
14
|
requirement: !ruby/object:Gem::Requirement
|
|
16
15
|
requirements:
|
|
17
16
|
- - ">="
|
|
@@ -39,7 +38,7 @@ dependencies:
|
|
|
39
38
|
- !ruby/object:Gem::Version
|
|
40
39
|
version: '0'
|
|
41
40
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
41
|
+
name: csv
|
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
|
44
43
|
requirements:
|
|
45
44
|
- - ">="
|
|
@@ -81,27 +80,21 @@ dependencies:
|
|
|
81
80
|
- !ruby/object:Gem::Version
|
|
82
81
|
version: '0'
|
|
83
82
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
83
|
+
name: ostruct
|
|
85
84
|
requirement: !ruby/object:Gem::Requirement
|
|
86
85
|
requirements:
|
|
87
86
|
- - ">="
|
|
88
87
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '
|
|
90
|
-
- - "<"
|
|
91
|
-
- !ruby/object:Gem::Version
|
|
92
|
-
version: '4.0'
|
|
88
|
+
version: '0'
|
|
93
89
|
type: :runtime
|
|
94
90
|
prerelease: false
|
|
95
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
96
92
|
requirements:
|
|
97
93
|
- - ">="
|
|
98
94
|
- !ruby/object:Gem::Version
|
|
99
|
-
version: '
|
|
100
|
-
- - "<"
|
|
101
|
-
- !ruby/object:Gem::Version
|
|
102
|
-
version: '4.0'
|
|
95
|
+
version: '0'
|
|
103
96
|
- !ruby/object:Gem::Dependency
|
|
104
|
-
name:
|
|
97
|
+
name: thor
|
|
105
98
|
requirement: !ruby/object:Gem::Requirement
|
|
106
99
|
requirements:
|
|
107
100
|
- - ">="
|
|
@@ -115,7 +108,7 @@ dependencies:
|
|
|
115
108
|
- !ruby/object:Gem::Version
|
|
116
109
|
version: '0'
|
|
117
110
|
- !ruby/object:Gem::Dependency
|
|
118
|
-
name:
|
|
111
|
+
name: mutex_m
|
|
119
112
|
requirement: !ruby/object:Gem::Requirement
|
|
120
113
|
requirements:
|
|
121
114
|
- - ">="
|
|
@@ -129,7 +122,7 @@ dependencies:
|
|
|
129
122
|
- !ruby/object:Gem::Version
|
|
130
123
|
version: '0'
|
|
131
124
|
- !ruby/object:Gem::Dependency
|
|
132
|
-
name:
|
|
125
|
+
name: nkf
|
|
133
126
|
requirement: !ruby/object:Gem::Requirement
|
|
134
127
|
requirements:
|
|
135
128
|
- - ">="
|
|
@@ -143,7 +136,7 @@ dependencies:
|
|
|
143
136
|
- !ruby/object:Gem::Version
|
|
144
137
|
version: '0'
|
|
145
138
|
- !ruby/object:Gem::Dependency
|
|
146
|
-
name:
|
|
139
|
+
name: reline
|
|
147
140
|
requirement: !ruby/object:Gem::Requirement
|
|
148
141
|
requirements:
|
|
149
142
|
- - ">="
|
|
@@ -157,49 +150,49 @@ dependencies:
|
|
|
157
150
|
- !ruby/object:Gem::Version
|
|
158
151
|
version: '0'
|
|
159
152
|
- !ruby/object:Gem::Dependency
|
|
160
|
-
name:
|
|
153
|
+
name: capybara
|
|
161
154
|
requirement: !ruby/object:Gem::Requirement
|
|
162
155
|
requirements:
|
|
163
|
-
- - "
|
|
156
|
+
- - "~>"
|
|
164
157
|
- !ruby/object:Gem::Version
|
|
165
|
-
version: '
|
|
158
|
+
version: '3.40'
|
|
166
159
|
type: :runtime
|
|
167
160
|
prerelease: false
|
|
168
161
|
version_requirements: !ruby/object:Gem::Requirement
|
|
169
162
|
requirements:
|
|
170
|
-
- - "
|
|
163
|
+
- - "~>"
|
|
171
164
|
- !ruby/object:Gem::Version
|
|
172
|
-
version: '
|
|
165
|
+
version: '3.40'
|
|
173
166
|
- !ruby/object:Gem::Dependency
|
|
174
|
-
name:
|
|
167
|
+
name: capybara-mechanize
|
|
175
168
|
requirement: !ruby/object:Gem::Requirement
|
|
176
169
|
requirements:
|
|
177
|
-
- - "
|
|
170
|
+
- - "~>"
|
|
178
171
|
- !ruby/object:Gem::Version
|
|
179
|
-
version: '
|
|
172
|
+
version: '1.13'
|
|
180
173
|
type: :runtime
|
|
181
174
|
prerelease: false
|
|
182
175
|
version_requirements: !ruby/object:Gem::Requirement
|
|
183
176
|
requirements:
|
|
184
|
-
- - "
|
|
177
|
+
- - "~>"
|
|
185
178
|
- !ruby/object:Gem::Version
|
|
186
|
-
version: '
|
|
179
|
+
version: '1.13'
|
|
187
180
|
- !ruby/object:Gem::Dependency
|
|
188
|
-
name:
|
|
181
|
+
name: selenium-webdriver
|
|
189
182
|
requirement: !ruby/object:Gem::Requirement
|
|
190
183
|
requirements:
|
|
191
184
|
- - "~>"
|
|
192
185
|
- !ruby/object:Gem::Version
|
|
193
|
-
version: '
|
|
186
|
+
version: '4.27'
|
|
194
187
|
type: :runtime
|
|
195
188
|
prerelease: false
|
|
196
189
|
version_requirements: !ruby/object:Gem::Requirement
|
|
197
190
|
requirements:
|
|
198
191
|
- - "~>"
|
|
199
192
|
- !ruby/object:Gem::Version
|
|
200
|
-
version: '
|
|
193
|
+
version: '4.27'
|
|
201
194
|
- !ruby/object:Gem::Dependency
|
|
202
|
-
name:
|
|
195
|
+
name: headless
|
|
203
196
|
requirement: !ruby/object:Gem::Requirement
|
|
204
197
|
requirements:
|
|
205
198
|
- - ">="
|
|
@@ -213,48 +206,61 @@ dependencies:
|
|
|
213
206
|
- !ruby/object:Gem::Version
|
|
214
207
|
version: '0'
|
|
215
208
|
- !ruby/object:Gem::Dependency
|
|
216
|
-
name:
|
|
209
|
+
name: pmap
|
|
217
210
|
requirement: !ruby/object:Gem::Requirement
|
|
218
211
|
requirements:
|
|
219
|
-
- - "
|
|
212
|
+
- - ">="
|
|
220
213
|
- !ruby/object:Gem::Version
|
|
221
|
-
version: '
|
|
222
|
-
type: :
|
|
214
|
+
version: '0'
|
|
215
|
+
type: :runtime
|
|
223
216
|
prerelease: false
|
|
224
217
|
version_requirements: !ruby/object:Gem::Requirement
|
|
225
218
|
requirements:
|
|
226
|
-
- - "
|
|
219
|
+
- - ">="
|
|
227
220
|
- !ruby/object:Gem::Version
|
|
228
|
-
version: '
|
|
221
|
+
version: '0'
|
|
229
222
|
- !ruby/object:Gem::Dependency
|
|
230
|
-
name:
|
|
223
|
+
name: whenever
|
|
231
224
|
requirement: !ruby/object:Gem::Requirement
|
|
232
225
|
requirements:
|
|
233
|
-
- - "
|
|
226
|
+
- - ">="
|
|
234
227
|
- !ruby/object:Gem::Version
|
|
235
|
-
version: '
|
|
236
|
-
type: :
|
|
228
|
+
version: '0'
|
|
229
|
+
type: :runtime
|
|
237
230
|
prerelease: false
|
|
238
231
|
version_requirements: !ruby/object:Gem::Requirement
|
|
239
232
|
requirements:
|
|
240
|
-
- - "
|
|
233
|
+
- - ">="
|
|
234
|
+
- !ruby/object:Gem::Version
|
|
235
|
+
version: '0'
|
|
236
|
+
- !ruby/object:Gem::Dependency
|
|
237
|
+
name: pry
|
|
238
|
+
requirement: !ruby/object:Gem::Requirement
|
|
239
|
+
requirements:
|
|
240
|
+
- - ">="
|
|
241
|
+
- !ruby/object:Gem::Version
|
|
242
|
+
version: '0'
|
|
243
|
+
type: :runtime
|
|
244
|
+
prerelease: false
|
|
245
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
246
|
+
requirements:
|
|
247
|
+
- - ">="
|
|
241
248
|
- !ruby/object:Gem::Version
|
|
242
|
-
version: '
|
|
249
|
+
version: '0'
|
|
243
250
|
- !ruby/object:Gem::Dependency
|
|
244
|
-
name:
|
|
251
|
+
name: rbcat
|
|
245
252
|
requirement: !ruby/object:Gem::Requirement
|
|
246
253
|
requirements:
|
|
247
254
|
- - "~>"
|
|
248
255
|
- !ruby/object:Gem::Version
|
|
249
|
-
version: '
|
|
250
|
-
type: :
|
|
256
|
+
version: '1.0'
|
|
257
|
+
type: :runtime
|
|
251
258
|
prerelease: false
|
|
252
259
|
version_requirements: !ruby/object:Gem::Requirement
|
|
253
260
|
requirements:
|
|
254
261
|
- - "~>"
|
|
255
262
|
- !ruby/object:Gem::Version
|
|
256
|
-
version: '
|
|
257
|
-
description:
|
|
263
|
+
version: '1.0'
|
|
258
264
|
email:
|
|
259
265
|
- vicfreefly@gmail.com
|
|
260
266
|
executables:
|
|
@@ -263,7 +269,7 @@ extensions: []
|
|
|
263
269
|
extra_rdoc_files: []
|
|
264
270
|
files:
|
|
265
271
|
- ".gitignore"
|
|
266
|
-
- ".
|
|
272
|
+
- ".rubocop.yml"
|
|
267
273
|
- CHANGELOG.md
|
|
268
274
|
- Gemfile
|
|
269
275
|
- LICENSE.txt
|
|
@@ -274,30 +280,21 @@ files:
|
|
|
274
280
|
- exe/kimurai
|
|
275
281
|
- kimurai.gemspec
|
|
276
282
|
- lib/kimurai.rb
|
|
277
|
-
- lib/kimurai/automation/deploy.yml
|
|
278
|
-
- lib/kimurai/automation/setup.yml
|
|
279
|
-
- lib/kimurai/automation/setup/chromium_chromedriver.yml
|
|
280
|
-
- lib/kimurai/automation/setup/firefox_geckodriver.yml
|
|
281
|
-
- lib/kimurai/automation/setup/phantomjs.yml
|
|
282
|
-
- lib/kimurai/automation/setup/ruby_environment.yml
|
|
283
283
|
- lib/kimurai/base.rb
|
|
284
284
|
- lib/kimurai/base/saver.rb
|
|
285
285
|
- lib/kimurai/base/storage.rb
|
|
286
286
|
- lib/kimurai/base_helper.rb
|
|
287
287
|
- lib/kimurai/browser_builder.rb
|
|
288
288
|
- lib/kimurai/browser_builder/mechanize_builder.rb
|
|
289
|
-
- lib/kimurai/browser_builder/poltergeist_phantomjs_builder.rb
|
|
290
289
|
- lib/kimurai/browser_builder/selenium_chrome_builder.rb
|
|
291
290
|
- lib/kimurai/browser_builder/selenium_firefox_builder.rb
|
|
292
291
|
- lib/kimurai/capybara_configuration.rb
|
|
293
292
|
- lib/kimurai/capybara_ext/driver/base.rb
|
|
294
293
|
- lib/kimurai/capybara_ext/mechanize/driver.rb
|
|
295
|
-
- lib/kimurai/capybara_ext/poltergeist/driver.rb
|
|
296
294
|
- lib/kimurai/capybara_ext/selenium/driver.rb
|
|
297
295
|
- lib/kimurai/capybara_ext/session.rb
|
|
298
296
|
- lib/kimurai/capybara_ext/session/config.rb
|
|
299
297
|
- lib/kimurai/cli.rb
|
|
300
|
-
- lib/kimurai/cli/ansible_command_builder.rb
|
|
301
298
|
- lib/kimurai/cli/generator.rb
|
|
302
299
|
- lib/kimurai/core_ext/array.rb
|
|
303
300
|
- lib/kimurai/core_ext/hash.rb
|
|
@@ -309,7 +306,6 @@ files:
|
|
|
309
306
|
- lib/kimurai/template/Gemfile
|
|
310
307
|
- lib/kimurai/template/README.md
|
|
311
308
|
- lib/kimurai/template/config/application.rb
|
|
312
|
-
- lib/kimurai/template/config/automation.yml
|
|
313
309
|
- lib/kimurai/template/config/boot.rb
|
|
314
310
|
- lib/kimurai/template/config/initializers/.keep
|
|
315
311
|
- lib/kimurai/template/config/schedule.rb
|
|
@@ -326,7 +322,6 @@ homepage: https://github.com/vifreefly/kimuraframework
|
|
|
326
322
|
licenses:
|
|
327
323
|
- MIT
|
|
328
324
|
metadata: {}
|
|
329
|
-
post_install_message:
|
|
330
325
|
rdoc_options: []
|
|
331
326
|
require_paths:
|
|
332
327
|
- lib
|
|
@@ -334,16 +329,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
334
329
|
requirements:
|
|
335
330
|
- - ">="
|
|
336
331
|
- !ruby/object:Gem::Version
|
|
337
|
-
version:
|
|
332
|
+
version: 3.1.0
|
|
338
333
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
339
334
|
requirements:
|
|
340
335
|
- - ">="
|
|
341
336
|
- !ruby/object:Gem::Version
|
|
342
337
|
version: '0'
|
|
343
338
|
requirements: []
|
|
344
|
-
|
|
345
|
-
rubygems_version: 2.7.6
|
|
346
|
-
signing_key:
|
|
339
|
+
rubygems_version: 4.0.1
|
|
347
340
|
specification_version: 4
|
|
348
341
|
summary: Modern web scraping framework written in Ruby and based on Capybara/Nokogiri
|
|
349
342
|
test_files: []
|
data/.travis.yml
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
- hosts: all
|
|
3
|
-
vars:
|
|
4
|
-
rbenv_root_path: /home/{{ ansible_user_id }}/.rbenv
|
|
5
|
-
rbenv_shims_path: "{{ rbenv_root_path }}/shims"
|
|
6
|
-
repo_url:
|
|
7
|
-
repo_name:
|
|
8
|
-
repo_key_path:
|
|
9
|
-
|
|
10
|
-
tasks:
|
|
11
|
-
- name: Copy custom git ssh key to /tmp/private_key (if provided)
|
|
12
|
-
when: repo_key_path is not none
|
|
13
|
-
copy:
|
|
14
|
-
src: "{{ repo_key_path }}"
|
|
15
|
-
dest: /tmp/private_key
|
|
16
|
-
mode: 0600
|
|
17
|
-
|
|
18
|
-
- name: Clone/pull project repo to ~/{{ repo_name }} user directory (using ssh-agent forwarding or https)
|
|
19
|
-
when: repo_key_path is none
|
|
20
|
-
git:
|
|
21
|
-
repo: "{{ repo_url }}"
|
|
22
|
-
dest: "~/{{ repo_name }}"
|
|
23
|
-
force: true
|
|
24
|
-
accept_hostkey: true
|
|
25
|
-
|
|
26
|
-
- name: Clone/pull project repo to ~/{{ repo_name }} user directory (using custom git ssh key)
|
|
27
|
-
when: repo_key_path is not none
|
|
28
|
-
git:
|
|
29
|
-
repo: "{{ repo_url }}"
|
|
30
|
-
dest: "~/{{ repo_name }}"
|
|
31
|
-
force: true
|
|
32
|
-
accept_hostkey: true
|
|
33
|
-
key_file: /tmp/private_key
|
|
34
|
-
|
|
35
|
-
- name: Delete custom git ssh key from /tmp/private_key (if provided)
|
|
36
|
-
when: repo_key_path is not none
|
|
37
|
-
file:
|
|
38
|
-
state: absent
|
|
39
|
-
path: /tmp/private_key
|
|
40
|
-
|
|
41
|
-
- name: Run bundle install
|
|
42
|
-
command: bundle install
|
|
43
|
-
args:
|
|
44
|
-
chdir: ~/{{ repo_name }}
|
|
45
|
-
environment:
|
|
46
|
-
PATH: "{{ rbenv_root_path }}/bin:{{ rbenv_root_path }}/shims:{{ ansible_env.PATH }}"
|
|
47
|
-
|
|
48
|
-
- name: Run whenever to update crontab
|
|
49
|
-
command: whenever --update-crontab
|
|
50
|
-
args:
|
|
51
|
-
chdir: ~/{{ repo_name }}
|
|
52
|
-
environment:
|
|
53
|
-
PATH: "{{ rbenv_root_path }}/bin:{{ rbenv_root_path }}/shims:{{ ansible_env.PATH }}"
|
|
54
|
-
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
- name: Install chromium browser
|
|
3
|
-
apt:
|
|
4
|
-
pkg: chromium-browser
|
|
5
|
-
state: present
|
|
6
|
-
|
|
7
|
-
- name: Get current chromedriver version
|
|
8
|
-
shell: chromedriver --version
|
|
9
|
-
args:
|
|
10
|
-
executable: /bin/bash
|
|
11
|
-
register: current_chromedriver_version
|
|
12
|
-
changed_when: false
|
|
13
|
-
ignore_errors: true
|
|
14
|
-
|
|
15
|
-
- name: Install unzip tool to unarchive chromedriver archive
|
|
16
|
-
apt:
|
|
17
|
-
pkg: unzip
|
|
18
|
-
state: present
|
|
19
|
-
|
|
20
|
-
- name: Download chromedriver binary archive and unarchive it to /usr/local/bin
|
|
21
|
-
unarchive:
|
|
22
|
-
src: https://chromedriver.storage.googleapis.com/{{ chromedriver }}/chromedriver_linux64.zip
|
|
23
|
-
dest: /usr/local/bin
|
|
24
|
-
remote_src: true
|
|
25
|
-
mode: a+x
|
|
26
|
-
when: chromedriver not in current_chromedriver_version.stdout_lines
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
- name: Install firefox
|
|
3
|
-
apt:
|
|
4
|
-
pkg: firefox
|
|
5
|
-
state: present
|
|
6
|
-
|
|
7
|
-
- name: Get current geckodriver version
|
|
8
|
-
shell: geckodriver --version
|
|
9
|
-
args:
|
|
10
|
-
executable: /bin/bash
|
|
11
|
-
register: current_geckodriver_version
|
|
12
|
-
changed_when: false
|
|
13
|
-
ignore_errors: true
|
|
14
|
-
|
|
15
|
-
- name: Download geckodriver binary archive and unarchive it to /usr/local/bin
|
|
16
|
-
unarchive:
|
|
17
|
-
src: https://github.com/mozilla/geckodriver/releases/download/v{{ geckodriver }}/geckodriver-v{{ geckodriver }}-linux64.tar.gz
|
|
18
|
-
dest: /usr/local/bin
|
|
19
|
-
remote_src: true
|
|
20
|
-
when: geckodriver not in current_geckodriver_version.stdout
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
- name: Install dependencies for PhantomJS
|
|
3
|
-
apt:
|
|
4
|
-
pkg: "{{ item }}"
|
|
5
|
-
state: present
|
|
6
|
-
with_items:
|
|
7
|
-
- chrpath
|
|
8
|
-
- libxft-dev
|
|
9
|
-
- libfreetype6
|
|
10
|
-
- libfreetype6-dev
|
|
11
|
-
- libfontconfig1
|
|
12
|
-
- libfontconfig1-dev
|
|
13
|
-
|
|
14
|
-
- name: Get current phantomjs version
|
|
15
|
-
shell: phantomjs -v
|
|
16
|
-
args:
|
|
17
|
-
executable: /bin/bash
|
|
18
|
-
register: current_phantomjs_version
|
|
19
|
-
changed_when: false
|
|
20
|
-
ignore_errors: true
|
|
21
|
-
|
|
22
|
-
- name: Download phantomJS archive and unarchive it to /usr/local/lib
|
|
23
|
-
unarchive:
|
|
24
|
-
src: https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-{{ phantomjs }}-linux-x86_64.tar.bz2
|
|
25
|
-
dest: /usr/local/lib
|
|
26
|
-
remote_src: true
|
|
27
|
-
when: phantomjs not in current_phantomjs_version.stdout
|
|
28
|
-
|
|
29
|
-
- name: Link PhantomJS binary to /usr/local/bin/phantomjs
|
|
30
|
-
file:
|
|
31
|
-
src: /usr/local/lib/phantomjs-{{ phantomjs }}-linux-x86_64/bin/phantomjs
|
|
32
|
-
dest: /usr/local/bin/phantomjs
|
|
33
|
-
state: link
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
- name: Install dependencies for ruby-build
|
|
3
|
-
become: true
|
|
4
|
-
apt:
|
|
5
|
-
pkg: "{{ item }}"
|
|
6
|
-
state: present
|
|
7
|
-
with_items:
|
|
8
|
-
- zlib1g-dev
|
|
9
|
-
- build-essential
|
|
10
|
-
- libssl-dev
|
|
11
|
-
- libreadline-dev
|
|
12
|
-
- libreadline6-dev
|
|
13
|
-
- libyaml-dev
|
|
14
|
-
- libxml2-dev
|
|
15
|
-
- libxslt1-dev
|
|
16
|
-
- libcurl4-openssl-dev
|
|
17
|
-
- libffi-dev
|
|
18
|
-
|
|
19
|
-
- name: Clone Rbenv repository to the {{ ansible_user_id }} user directory
|
|
20
|
-
git:
|
|
21
|
-
repo: https://github.com/sstephenson/rbenv.git
|
|
22
|
-
dest: "{{ rbenv_root_path }}"
|
|
23
|
-
|
|
24
|
-
- name: Clone ruby-build repo to the {{ ansible_user_id }} user directory
|
|
25
|
-
git:
|
|
26
|
-
repo: https://github.com/sstephenson/ruby-build.git
|
|
27
|
-
dest: "{{ rbenv_root_path }}/plugins/ruby-build"
|
|
28
|
-
|
|
29
|
-
- name: Add Rbenv path to the .bashrc
|
|
30
|
-
lineinfile:
|
|
31
|
-
dest: ~/.bashrc
|
|
32
|
-
regexp: '^export PATH="\$HOME\/\.rbenv'
|
|
33
|
-
line: export PATH="$HOME/.rbenv/bin:$PATH"
|
|
34
|
-
state: present
|
|
35
|
-
|
|
36
|
-
- name: Add Rbenv init to the .bashrc
|
|
37
|
-
lineinfile:
|
|
38
|
-
dest: ~/.bashrc
|
|
39
|
-
regexp: '^eval "\$\(rbenv'
|
|
40
|
-
line: eval "$(rbenv init -)"
|
|
41
|
-
state: present
|
|
42
|
-
|
|
43
|
-
- name: Check if desired Ruby version already installed
|
|
44
|
-
stat:
|
|
45
|
-
path: "{{ ruby_versions_path }}/{{ ruby }}"
|
|
46
|
-
register: ruby_present
|
|
47
|
-
|
|
48
|
-
- name: Install desired Ruby version using ruby-build (this can take a while)
|
|
49
|
-
command: rbenv install {{ ruby }}
|
|
50
|
-
when: not ruby_present.stat.exists
|
|
51
|
-
environment:
|
|
52
|
-
CONFIGURE_OPTS: "--disable-install-doc"
|
|
53
|
-
PATH: "{{ rbenv_root_path }}/bin:{{ rbenv_root_path }}/shims:{{ ansible_env.PATH }}"
|
|
54
|
-
|
|
55
|
-
- name: Get current Ruby version
|
|
56
|
-
command: "ruby -v"
|
|
57
|
-
register: current_ruby_version
|
|
58
|
-
changed_when: false
|
|
59
|
-
ignore_errors: true
|
|
60
|
-
environment:
|
|
61
|
-
PATH: "{{ rbenv_root_path }}/bin:{{ rbenv_root_path }}/shims:{{ ansible_env.PATH }}"
|
|
62
|
-
|
|
63
|
-
- name: Set desired Ruby version as a global version
|
|
64
|
-
command: "rbenv global {{ ruby }}"
|
|
65
|
-
when: ruby not in current_ruby_version.stdout
|
|
66
|
-
environment:
|
|
67
|
-
PATH: "{{ rbenv_root_path }}/bin:{{ rbenv_root_path }}/shims:{{ ansible_env.PATH }}"
|
|
68
|
-
register: set_ruby
|
|
69
|
-
|
|
70
|
-
- name: Execute `rbenv rehash` command
|
|
71
|
-
command: rbenv rehash
|
|
72
|
-
when: set_ruby.changed
|
|
73
|
-
environment:
|
|
74
|
-
PATH: "{{ rbenv_root_path }}/bin:{{ rbenv_root_path }}/shims:{{ ansible_env.PATH }}"
|
|
75
|
-
|
|
76
|
-
- name: Create ~/.gemrc file to skip docs
|
|
77
|
-
copy:
|
|
78
|
-
dest: ~/.gemrc
|
|
79
|
-
content: "gem: --no-ri --no-rdoc"
|
|
80
|
-
|
|
81
|
-
- name: Create ~/.bundle directory
|
|
82
|
-
file:
|
|
83
|
-
dest: ~/.bundle
|
|
84
|
-
state: directory
|
|
85
|
-
|
|
86
|
-
- name: Create ~/.bundle/config file with default settings `BUNDLE_GIT__ALLOW_INSECURE true` and `BUNDLE_JOBS 4`
|
|
87
|
-
copy:
|
|
88
|
-
dest: ~/.bundle/config
|
|
89
|
-
content: |
|
|
90
|
-
BUNDLE_GIT__ALLOW_INSECURE: "true"
|
|
91
|
-
BUNDLE_JOBS: "4"
|
|
92
|
-
|
|
93
|
-
- name: Check if Bundler gem installed
|
|
94
|
-
stat:
|
|
95
|
-
path: "{{ ruby_versions_path }}/{{ ruby }}/bin/bundler"
|
|
96
|
-
register: bundler_gem_present
|
|
97
|
-
|
|
98
|
-
- name: Install Bundler gem
|
|
99
|
-
command: gem install bundler
|
|
100
|
-
when: not bundler_gem_present.stat.exists
|
|
101
|
-
environment:
|
|
102
|
-
PATH: "{{ rbenv_root_path }}/bin:{{ rbenv_root_path }}/shims:{{ ansible_env.PATH }}"
|
|
103
|
-
|
|
104
|
-
- name: Check if Whenever gem installed
|
|
105
|
-
stat:
|
|
106
|
-
path: "{{ ruby_versions_path }}/{{ ruby }}/bin/whenever"
|
|
107
|
-
register: whenever_gem_present
|
|
108
|
-
|
|
109
|
-
- name: Install Whenever gem
|
|
110
|
-
command: gem install whenever
|
|
111
|
-
when: not whenever_gem_present.stat.exists
|
|
112
|
-
environment:
|
|
113
|
-
PATH: "{{ rbenv_root_path }}/bin:{{ rbenv_root_path }}/shims:{{ ansible_env.PATH }}"
|
|
114
|
-
|
|
115
|
-
- name: Check if Kimurai gem installed
|
|
116
|
-
stat:
|
|
117
|
-
path: "{{ ruby_versions_path }}/{{ ruby }}/bin/kimurai"
|
|
118
|
-
register: kimurai_gem_present
|
|
119
|
-
|
|
120
|
-
- name: Install Kimurai gem
|
|
121
|
-
command: gem install kimurai
|
|
122
|
-
when: not kimurai_gem_present.stat.exists
|
|
123
|
-
environment:
|
|
124
|
-
PATH: "{{ rbenv_root_path }}/bin:{{ rbenv_root_path }}/shims:{{ ansible_env.PATH }}"
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
- hosts: all
|
|
3
|
-
vars:
|
|
4
|
-
ruby: 2.5.3
|
|
5
|
-
rbenv_root_path: /home/{{ ansible_user_id }}/.rbenv
|
|
6
|
-
rbenv_shims_path: "{{ rbenv_root_path }}/shims"
|
|
7
|
-
ruby_versions_path: "{{ rbenv_root_path }}/versions"
|
|
8
|
-
# check latest here http://phantomjs.org/download.html
|
|
9
|
-
phantomjs: 2.1.1
|
|
10
|
-
# check latest here https://github.com/mozilla/geckodriver/releases/
|
|
11
|
-
geckodriver: 0.23.0
|
|
12
|
-
# check latest here https://sites.google.com/a/chromium.org/chromedriver/downloads
|
|
13
|
-
chromedriver: 2.44
|
|
14
|
-
|
|
15
|
-
tasks:
|
|
16
|
-
- name: Update apt cache
|
|
17
|
-
become: true
|
|
18
|
-
apt: update_cache=yes cache_valid_time=86400
|
|
19
|
-
|
|
20
|
-
- name: Install base packages
|
|
21
|
-
become: true
|
|
22
|
-
apt:
|
|
23
|
-
pkg: "{{ item }}"
|
|
24
|
-
state: present
|
|
25
|
-
with_items:
|
|
26
|
-
- xvfb
|
|
27
|
-
- libsqlite3-dev
|
|
28
|
-
- sqlite3
|
|
29
|
-
- mongodb-clients
|
|
30
|
-
- mysql-client
|
|
31
|
-
- libmysqlclient-dev
|
|
32
|
-
- postgresql-client
|
|
33
|
-
- libpq-dev
|
|
34
|
-
|
|
35
|
-
- import_tasks: setup/ruby_environment.yml
|
|
36
|
-
|
|
37
|
-
- import_tasks: setup/phantomjs.yml
|
|
38
|
-
become: true
|
|
39
|
-
|
|
40
|
-
- import_tasks: setup/firefox_geckodriver.yml
|
|
41
|
-
become: true
|
|
42
|
-
|
|
43
|
-
- import_tasks: setup/chromium_chromedriver.yml
|
|
44
|
-
become: true
|