roro 0.2.4 → 0.3.4

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.
Files changed (350) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -9
  3. data/{docker/env_files/.keep → .keep} +0 -0
  4. data/Guardfile +2 -2
  5. data/README.md +118 -41
  6. data/lib/roro/cli.rb +2 -3
  7. data/lib/roro/cli/base/base.rb +7 -0
  8. data/lib/roro/cli/base/base_files.rb +38 -0
  9. data/lib/roro/cli/base/configuration.rb +63 -0
  10. data/lib/roro/cli/base/continuous_integration.rb +13 -0
  11. data/lib/roro/cli/base/insert_gems.rb +23 -0
  12. data/lib/roro/cli/base/insertions.rb +17 -0
  13. data/lib/roro/cli/base/utilities.rb +17 -0
  14. data/lib/roro/cli/generate_keys.rb +1 -1
  15. data/lib/roro/cli/greenfield.rb +15 -11
  16. data/lib/roro/cli/rollon.rb +19 -12
  17. data/lib/roro/cli/rollon/as_dockerize.rb +28 -0
  18. data/lib/roro/cli/rollon/as_quickstart.rb +17 -0
  19. data/lib/roro/cli/rollon/as_roro.rb +30 -0
  20. data/lib/roro/cli/rollon/use_cases.rb +3 -0
  21. data/lib/roro/cli/ruby_gem.rb +6 -0
  22. data/lib/roro/cli/templates/base/.dockerignore +13 -0
  23. data/{docker/keys → lib/roro/cli/templates/base}/.keep +0 -0
  24. data/{test_apps/dummy_roro/.circleci/config.yml → lib/roro/cli/templates/base/circleci/config.yml.tt} +7 -6
  25. data/lib/roro/cli/templates/{config → base/config}/database.yml +0 -0
  26. data/lib/roro/cli/templates/base/docker-compose.yml.tt +53 -0
  27. data/lib/roro/cli/templates/base/livereload/hosts.example +7 -0
  28. data/lib/roro/cli/templates/{docker/containers/database → base/roro}/.keep +0 -0
  29. data/lib/roro/cli/templates/{docker/env_files → base/roro/containers}/.keep +0 -0
  30. data/lib/roro/cli/templates/{docker/keys → base/roro/containers/app}/.keep +0 -0
  31. data/lib/roro/cli/templates/base/roro/containers/app/Dockerfile.tt +32 -0
  32. data/lib/roro/cli/templates/base/roro/containers/app/development.env.tt +1 -0
  33. data/lib/roro/cli/templates/base/roro/containers/app/docker-entrypoint.sh +8 -0
  34. data/lib/roro/cli/templates/base/roro/containers/app/test.env.tt +1 -0
  35. data/lib/roro/cli/templates/base/roro/containers/database/development.env.tt +4 -0
  36. data/lib/roro/cli/templates/base/roro/containers/database/test.env.tt +4 -0
  37. data/{test_apps/dummy/app/assets/images → lib/roro/cli/templates/base/roro/containers/frontend}/.keep +0 -0
  38. data/{test_apps/dummy/app/assets/javascripts/channels → lib/roro/cli/templates/dockerize/.env}/.keep +0 -0
  39. data/{test_apps/dummy/app/controllers/concerns → lib/roro/cli/templates/dockerize/.env/development}/.keep +0 -0
  40. data/lib/roro/cli/templates/dockerize/.env/development/database +3 -0
  41. data/lib/roro/cli/templates/dockerize/.env/development/web +1 -0
  42. data/{test_apps/dummy/app/models/concerns → lib/roro/cli/templates/dockerize}/.keep +0 -0
  43. data/lib/roro/cli/templates/dockerize/Dockerfile.tt +23 -0
  44. data/lib/roro/cli/templates/dockerize/docker-compose.yml +60 -0
  45. data/lib/roro/cli/templates/dockerize/docker-entrypoint.sh +9 -0
  46. data/lib/roro/cli/templates/greenfield/Dockerfile.tt +21 -0
  47. data/lib/roro/cli/templates/greenfield/Gemfile +1 -1
  48. data/lib/roro/cli/templates/greenfield/docker-compose.yml +12 -10
  49. data/lib/roro/cli/templates/greenfield/docker-entrypoint.sh +8 -0
  50. data/{test_apps/dummy/lib/assets → lib/roro/cli/templates/jumpstart/.env}/.keep +0 -0
  51. data/{test_apps/dummy/lib/tasks → lib/roro/cli/templates/jumpstart/.env/development}/.keep +0 -0
  52. data/lib/roro/cli/templates/jumpstart/.env/development/database +3 -0
  53. data/lib/roro/cli/templates/jumpstart/.env/development/web +1 -0
  54. data/{test_apps/dummy/log → lib/roro/cli/templates/jumpstart}/.keep +0 -0
  55. data/lib/roro/cli/templates/jumpstart/Dockerfile.tt +30 -0
  56. data/lib/roro/cli/templates/jumpstart/docker-compose.yml +59 -0
  57. data/lib/roro/cli/templates/jumpstart/docker-entrypoint.sh +16 -0
  58. data/lib/roro/cli/templates/quickstart/Dockerfile.tt +20 -0
  59. data/{test_apps/dummy/config → lib/roro/cli/templates/quickstart}/database.yml +12 -12
  60. data/lib/roro/cli/templates/quickstart/docker-compose.yml +17 -0
  61. data/lib/roro/cli/templates/quickstart/entrypoint.sh +8 -0
  62. data/lib/roro/cli/templates/ruby_gem/.gitignore +8 -0
  63. data/lib/roro/version.rb +1 -1
  64. data/roro.gemspec +5 -3
  65. data/vendor/cache/actionpack-6.0.3.2.gem +0 -0
  66. data/vendor/cache/actionview-6.0.3.2.gem +0 -0
  67. data/vendor/cache/activesupport-6.0.3.2.gem +0 -0
  68. data/vendor/cache/addressable-2.7.0.gem +0 -0
  69. data/vendor/cache/builder-3.2.4.gem +0 -0
  70. data/vendor/cache/byebug-11.1.3.gem +0 -0
  71. data/vendor/cache/coderay-1.1.3.gem +0 -0
  72. data/vendor/cache/concurrent-ruby-1.1.6.gem +0 -0
  73. data/vendor/cache/crass-1.0.6.gem +0 -0
  74. data/vendor/cache/erubi-1.9.0.gem +0 -0
  75. data/vendor/cache/ffi-1.13.1.gem +0 -0
  76. data/vendor/cache/guard-2.16.2.gem +0 -0
  77. data/vendor/cache/i18n-1.8.5.gem +0 -0
  78. data/vendor/cache/launchy-2.5.0.gem +0 -0
  79. data/vendor/cache/listen-3.2.1.gem +0 -0
  80. data/vendor/cache/loofah-2.6.0.gem +0 -0
  81. data/vendor/cache/lumberjack-1.2.7.gem +0 -0
  82. data/vendor/cache/method_source-1.0.0.gem +0 -0
  83. data/vendor/cache/minitest-5.14.1.gem +0 -0
  84. data/vendor/cache/minitest-rails-6.0.1.gem +0 -0
  85. data/vendor/cache/multi_json-1.15.0.gem +0 -0
  86. data/vendor/cache/net-scp-3.0.0.gem +0 -0
  87. data/vendor/cache/net-ssh-6.1.0.gem +0 -0
  88. data/vendor/cache/{nokogiri-1.9.1.gem → nokogiri-1.10.10.gem} +0 -0
  89. data/vendor/cache/notiffany-0.1.3.gem +0 -0
  90. data/vendor/cache/pry-0.13.1.gem +0 -0
  91. data/vendor/cache/public_suffix-4.0.5.gem +0 -0
  92. data/vendor/cache/rack-2.2.3.gem +0 -0
  93. data/vendor/cache/rails-html-sanitizer-1.3.0.gem +0 -0
  94. data/vendor/cache/railties-6.0.3.2.gem +0 -0
  95. data/vendor/cache/rake-13.0.1.gem +0 -0
  96. data/vendor/cache/rb-fsevent-0.10.4.gem +0 -0
  97. data/vendor/cache/rb-inotify-0.10.1.gem +0 -0
  98. data/vendor/cache/shoulda-4.0.0.gem +0 -0
  99. data/vendor/cache/shoulda-context-2.0.0.gem +0 -0
  100. data/vendor/cache/shoulda-matchers-4.3.0.gem +0 -0
  101. data/vendor/cache/sorcerer-2.0.1.gem +0 -0
  102. data/vendor/cache/thor-1.0.1.gem +0 -0
  103. data/vendor/cache/tzinfo-1.2.7.gem +0 -0
  104. data/vendor/cache/zeitwerk-2.4.0.gem +0 -0
  105. metadata +116 -272
  106. data/.circleci/config.yml +0 -177
  107. data/.circleci/setup-gem-credentials.sh +0 -3
  108. data/.ruby-version +0 -1
  109. data/Gemfile.lock +0 -165
  110. data/_config.yml +0 -1
  111. data/docker-compose.yml +0 -21
  112. data/docker/containers/2_5_3/Dockerfile +0 -10
  113. data/docker/containers/2_6_0/Dockerfile +0 -10
  114. data/docker/containers/app/Dockerfile +0 -10
  115. data/docker/env_files/circleci.env.enc +0 -5
  116. data/lib/roro/cli/base.rb +0 -137
  117. data/lib/roro/cli/templates/Gemfile.lock +0 -0
  118. data/lib/roro/cli/templates/Guardfile +0 -81
  119. data/lib/roro/cli/templates/circleci/Rakefile +0 -4
  120. data/lib/roro/cli/templates/circleci/config.job-example.yml +0 -33
  121. data/lib/roro/cli/templates/circleci/config.yml +0 -69
  122. data/lib/roro/cli/templates/circleci/config.yml.workflow-example +0 -62
  123. data/lib/roro/cli/templates/circleci/deploy.rake +0 -127
  124. data/lib/roro/cli/templates/config.yml +0 -71
  125. data/lib/roro/cli/templates/docker-compose.yml +0 -51
  126. data/lib/roro/cli/templates/docker/containers/app/Dockerfile.tt +0 -12
  127. data/lib/roro/cli/templates/docker/containers/web/Dockerfile.tt +0 -18
  128. data/lib/roro/cli/templates/docker/containers/web/app.conf.tt +0 -23
  129. data/lib/roro/cli/templates/docker/overrides/circleci.yml.tt +0 -19
  130. data/lib/roro/cli/templates/docker/overrides/production.yml.tt +0 -26
  131. data/lib/roro/cli/templates/docker/web/Dockerfile +0 -20
  132. data/lib/roro/cli/templates/docker/web/app.conf +0 -23
  133. data/lib/roro/cli/templates/gitignore +0 -27
  134. data/lib/roro/cli/templates/greenfield/Dockerfile +0 -8
  135. data/lib/roro/cli/templates/lib/tasks/deploy.rake +0 -126
  136. data/test_apps/dummy/.gitignore +0 -27
  137. data/test_apps/dummy/Gemfile +0 -61
  138. data/test_apps/dummy/README.md +0 -24
  139. data/test_apps/dummy/Rakefile +0 -6
  140. data/test_apps/dummy/app/assets/config/manifest.js +0 -3
  141. data/test_apps/dummy/app/assets/javascripts/application.js +0 -16
  142. data/test_apps/dummy/app/assets/javascripts/cable.js +0 -13
  143. data/test_apps/dummy/app/assets/stylesheets/application.css +0 -15
  144. data/test_apps/dummy/app/channels/application_cable/channel.rb +0 -4
  145. data/test_apps/dummy/app/channels/application_cable/connection.rb +0 -4
  146. data/test_apps/dummy/app/controllers/application_controller.rb +0 -2
  147. data/test_apps/dummy/app/helpers/application_helper.rb +0 -2
  148. data/test_apps/dummy/app/jobs/application_job.rb +0 -2
  149. data/test_apps/dummy/app/mailers/application_mailer.rb +0 -4
  150. data/test_apps/dummy/app/models/application_record.rb +0 -3
  151. data/test_apps/dummy/app/views/layouts/application.html.erb +0 -15
  152. data/test_apps/dummy/app/views/layouts/mailer.html.erb +0 -13
  153. data/test_apps/dummy/app/views/layouts/mailer.text.erb +0 -1
  154. data/test_apps/dummy/bin/bundle +0 -3
  155. data/test_apps/dummy/bin/rails +0 -4
  156. data/test_apps/dummy/bin/rake +0 -4
  157. data/test_apps/dummy/bin/setup +0 -36
  158. data/test_apps/dummy/bin/update +0 -31
  159. data/test_apps/dummy/bin/yarn +0 -11
  160. data/test_apps/dummy/config.ru +0 -5
  161. data/test_apps/dummy/config/application.rb +0 -19
  162. data/test_apps/dummy/config/boot.rb +0 -4
  163. data/test_apps/dummy/config/cable.yml +0 -10
  164. data/test_apps/dummy/config/credentials.yml.enc +0 -1
  165. data/test_apps/dummy/config/environment.rb +0 -5
  166. data/test_apps/dummy/config/environments/development.rb +0 -61
  167. data/test_apps/dummy/config/environments/production.rb +0 -94
  168. data/test_apps/dummy/config/environments/test.rb +0 -46
  169. data/test_apps/dummy/config/initializers/application_controller_renderer.rb +0 -8
  170. data/test_apps/dummy/config/initializers/assets.rb +0 -14
  171. data/test_apps/dummy/config/initializers/backtrace_silencers.rb +0 -7
  172. data/test_apps/dummy/config/initializers/content_security_policy.rb +0 -25
  173. data/test_apps/dummy/config/initializers/cookies_serializer.rb +0 -5
  174. data/test_apps/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  175. data/test_apps/dummy/config/initializers/inflections.rb +0 -16
  176. data/test_apps/dummy/config/initializers/mime_types.rb +0 -4
  177. data/test_apps/dummy/config/initializers/wrap_parameters.rb +0 -14
  178. data/test_apps/dummy/config/locales/en.yml +0 -33
  179. data/test_apps/dummy/config/puma.rb +0 -34
  180. data/test_apps/dummy/config/routes.rb +0 -3
  181. data/test_apps/dummy/config/spring.rb +0 -6
  182. data/test_apps/dummy/config/storage.yml +0 -34
  183. data/test_apps/dummy/db/seeds.rb +0 -7
  184. data/test_apps/dummy/package.json +0 -5
  185. data/test_apps/dummy/public/404.html +0 -67
  186. data/test_apps/dummy/public/422.html +0 -67
  187. data/test_apps/dummy/public/500.html +0 -66
  188. data/test_apps/dummy/public/apple-touch-icon-precomposed.png +0 -0
  189. data/test_apps/dummy/public/apple-touch-icon.png +0 -0
  190. data/test_apps/dummy/public/favicon.ico +0 -0
  191. data/test_apps/dummy/public/robots.txt +0 -1
  192. data/test_apps/dummy/storage/.keep +0 -0
  193. data/test_apps/dummy/test/application_system_test_case.rb +0 -5
  194. data/test_apps/dummy/test/controllers/.keep +0 -0
  195. data/test_apps/dummy/test/fixtures/.keep +0 -0
  196. data/test_apps/dummy/test/fixtures/files/.keep +0 -0
  197. data/test_apps/dummy/test/helpers/.keep +0 -0
  198. data/test_apps/dummy/test/integration/.keep +0 -0
  199. data/test_apps/dummy/test/mailers/.keep +0 -0
  200. data/test_apps/dummy/test/models/.keep +0 -0
  201. data/test_apps/dummy/test/system/.keep +0 -0
  202. data/test_apps/dummy/test/test_helper.rb +0 -10
  203. data/test_apps/dummy/tmp/.keep +0 -0
  204. data/test_apps/dummy/vendor/.keep +0 -0
  205. data/test_apps/dummy_gem/.keep +0 -0
  206. data/test_apps/dummy_roro/.circleci/Rakefile +0 -4
  207. data/test_apps/dummy_roro/.circleci/config.job-example.yml +0 -33
  208. data/test_apps/dummy_roro/.circleci/config.yml.workflow-example +0 -62
  209. data/test_apps/dummy_roro/.circleci/deploy.rake +0 -127
  210. data/test_apps/dummy_roro/.gitignore +0 -27
  211. data/test_apps/dummy_roro/Gemfile +0 -64
  212. data/test_apps/dummy_roro/README.md +0 -24
  213. data/test_apps/dummy_roro/Rakefile +0 -6
  214. data/test_apps/dummy_roro/app/assets/config/manifest.js +0 -3
  215. data/test_apps/dummy_roro/app/assets/images/.keep +0 -0
  216. data/test_apps/dummy_roro/app/assets/javascripts/application.js +0 -16
  217. data/test_apps/dummy_roro/app/assets/javascripts/cable.js +0 -13
  218. data/test_apps/dummy_roro/app/assets/javascripts/channels/.keep +0 -0
  219. data/test_apps/dummy_roro/app/assets/stylesheets/application.css +0 -15
  220. data/test_apps/dummy_roro/app/channels/application_cable/channel.rb +0 -4
  221. data/test_apps/dummy_roro/app/channels/application_cable/connection.rb +0 -4
  222. data/test_apps/dummy_roro/app/controllers/application_controller.rb +0 -2
  223. data/test_apps/dummy_roro/app/controllers/concerns/.keep +0 -0
  224. data/test_apps/dummy_roro/app/helpers/application_helper.rb +0 -2
  225. data/test_apps/dummy_roro/app/jobs/application_job.rb +0 -2
  226. data/test_apps/dummy_roro/app/mailers/application_mailer.rb +0 -4
  227. data/test_apps/dummy_roro/app/models/application_record.rb +0 -3
  228. data/test_apps/dummy_roro/app/models/concerns/.keep +0 -0
  229. data/test_apps/dummy_roro/app/views/layouts/application.html.erb +0 -15
  230. data/test_apps/dummy_roro/app/views/layouts/mailer.html.erb +0 -13
  231. data/test_apps/dummy_roro/app/views/layouts/mailer.text.erb +0 -1
  232. data/test_apps/dummy_roro/bin/bundle +0 -3
  233. data/test_apps/dummy_roro/bin/rails +0 -4
  234. data/test_apps/dummy_roro/bin/rake +0 -4
  235. data/test_apps/dummy_roro/bin/setup +0 -36
  236. data/test_apps/dummy_roro/bin/update +0 -31
  237. data/test_apps/dummy_roro/bin/yarn +0 -11
  238. data/test_apps/dummy_roro/config.ru +0 -5
  239. data/test_apps/dummy_roro/config/application.rb +0 -19
  240. data/test_apps/dummy_roro/config/boot.rb +0 -4
  241. data/test_apps/dummy_roro/config/cable.yml +0 -10
  242. data/test_apps/dummy_roro/config/credentials.yml.enc +0 -1
  243. data/test_apps/dummy_roro/config/database.yml +0 -20
  244. data/test_apps/dummy_roro/config/environment.rb +0 -5
  245. data/test_apps/dummy_roro/config/environments/development.rb +0 -61
  246. data/test_apps/dummy_roro/config/environments/production.rb +0 -94
  247. data/test_apps/dummy_roro/config/environments/test.rb +0 -46
  248. data/test_apps/dummy_roro/config/initializers/application_controller_renderer.rb +0 -8
  249. data/test_apps/dummy_roro/config/initializers/assets.rb +0 -14
  250. data/test_apps/dummy_roro/config/initializers/backtrace_silencers.rb +0 -7
  251. data/test_apps/dummy_roro/config/initializers/content_security_policy.rb +0 -25
  252. data/test_apps/dummy_roro/config/initializers/cookies_serializer.rb +0 -5
  253. data/test_apps/dummy_roro/config/initializers/filter_parameter_logging.rb +0 -4
  254. data/test_apps/dummy_roro/config/initializers/inflections.rb +0 -16
  255. data/test_apps/dummy_roro/config/initializers/mime_types.rb +0 -4
  256. data/test_apps/dummy_roro/config/initializers/wrap_parameters.rb +0 -14
  257. data/test_apps/dummy_roro/config/locales/en.yml +0 -33
  258. data/test_apps/dummy_roro/config/puma.rb +0 -34
  259. data/test_apps/dummy_roro/config/routes.rb +0 -3
  260. data/test_apps/dummy_roro/config/spring.rb +0 -6
  261. data/test_apps/dummy_roro/config/storage.yml +0 -34
  262. data/test_apps/dummy_roro/db/seeds.rb +0 -7
  263. data/test_apps/dummy_roro/docker-compose.yml +0 -51
  264. data/test_apps/dummy_roro/docker/containers/app/Dockerfile +0 -12
  265. data/test_apps/dummy_roro/docker/containers/app/circleci.env +0 -2
  266. data/test_apps/dummy_roro/docker/containers/app/development.env +0 -2
  267. data/test_apps/dummy_roro/docker/containers/app/production.env +0 -2
  268. data/test_apps/dummy_roro/docker/containers/app/staging.env +0 -2
  269. data/test_apps/dummy_roro/docker/containers/database/.keep +0 -0
  270. data/test_apps/dummy_roro/docker/containers/database/circleci.env +0 -3
  271. data/test_apps/dummy_roro/docker/containers/database/development.env +0 -3
  272. data/test_apps/dummy_roro/docker/containers/database/production.env +0 -3
  273. data/test_apps/dummy_roro/docker/containers/database/staging.env +0 -3
  274. data/test_apps/dummy_roro/docker/containers/web/Dockerfile +0 -18
  275. data/test_apps/dummy_roro/docker/containers/web/app.conf +0 -23
  276. data/test_apps/dummy_roro/docker/containers/web/circleci.env +0 -1
  277. data/test_apps/dummy_roro/docker/containers/web/development.env +0 -1
  278. data/test_apps/dummy_roro/docker/containers/web/production.env +0 -1
  279. data/test_apps/dummy_roro/docker/containers/web/staging.env +0 -1
  280. data/test_apps/dummy_roro/docker/env_files/circleci.env +0 -12
  281. data/test_apps/dummy_roro/docker/env_files/circleci.env.enc +0 -14
  282. data/test_apps/dummy_roro/docker/env_files/production.env +0 -2
  283. data/test_apps/dummy_roro/docker/env_files/production.env.enc +0 -2
  284. data/test_apps/dummy_roro/docker/keys/.keep +0 -0
  285. data/test_apps/dummy_roro/docker/overrides/circleci.yml +0 -19
  286. data/test_apps/dummy_roro/docker/overrides/production.yml +0 -26
  287. data/test_apps/dummy_roro/lib/assets/.keep +0 -0
  288. data/test_apps/dummy_roro/lib/tasks/.keep +0 -0
  289. data/test_apps/dummy_roro/lib/tasks/deploy.rake +0 -126
  290. data/test_apps/dummy_roro/log/.keep +0 -0
  291. data/test_apps/dummy_roro/package.json +0 -5
  292. data/test_apps/dummy_roro/public/404.html +0 -67
  293. data/test_apps/dummy_roro/public/422.html +0 -67
  294. data/test_apps/dummy_roro/public/500.html +0 -66
  295. data/test_apps/dummy_roro/public/apple-touch-icon-precomposed.png +0 -0
  296. data/test_apps/dummy_roro/public/apple-touch-icon.png +0 -0
  297. data/test_apps/dummy_roro/public/favicon.ico +0 -0
  298. data/test_apps/dummy_roro/public/robots.txt +0 -1
  299. data/test_apps/dummy_roro/storage/.keep +0 -0
  300. data/test_apps/dummy_roro/test/application_system_test_case.rb +0 -5
  301. data/test_apps/dummy_roro/test/controllers/.keep +0 -0
  302. data/test_apps/dummy_roro/test/fixtures/.keep +0 -0
  303. data/test_apps/dummy_roro/test/fixtures/files/.keep +0 -0
  304. data/test_apps/dummy_roro/test/helpers/.keep +0 -0
  305. data/test_apps/dummy_roro/test/integration/.keep +0 -0
  306. data/test_apps/dummy_roro/test/mailers/.keep +0 -0
  307. data/test_apps/dummy_roro/test/models/.keep +0 -0
  308. data/test_apps/dummy_roro/test/system/.keep +0 -0
  309. data/test_apps/dummy_roro/test/test_helper.rb +0 -10
  310. data/test_apps/dummy_roro/tmp/.keep +0 -0
  311. data/test_apps/dummy_roro/vendor/.keep +0 -0
  312. data/test_apps/greenfield/.keep +0 -0
  313. data/vendor/cache/actionpack-5.2.2.gem +0 -0
  314. data/vendor/cache/actionview-5.2.2.gem +0 -0
  315. data/vendor/cache/activesupport-5.2.2.gem +0 -0
  316. data/vendor/cache/addressable-2.5.2.gem +0 -0
  317. data/vendor/cache/builder-3.2.3.gem +0 -0
  318. data/vendor/cache/coderay-1.1.2.gem +0 -0
  319. data/vendor/cache/concurrent-ruby-1.1.4.gem +0 -0
  320. data/vendor/cache/crass-1.0.4.gem +0 -0
  321. data/vendor/cache/erubi-1.8.0.gem +0 -0
  322. data/vendor/cache/ffi-1.9.25.gem +0 -0
  323. data/vendor/cache/guard-2.15.0.gem +0 -0
  324. data/vendor/cache/i18n-1.3.0.gem +0 -0
  325. data/vendor/cache/launchy-2.4.3.gem +0 -0
  326. data/vendor/cache/listen-3.1.5.gem +0 -0
  327. data/vendor/cache/loofah-2.2.3.gem +0 -0
  328. data/vendor/cache/lumberjack-1.0.13.gem +0 -0
  329. data/vendor/cache/method_source-0.9.2.gem +0 -0
  330. data/vendor/cache/minitest-5.11.3.gem +0 -0
  331. data/vendor/cache/minitest-rails-3.0.0.gem +0 -0
  332. data/vendor/cache/multi_json-1.13.1.gem +0 -0
  333. data/vendor/cache/net-scp-1.2.1.gem +0 -0
  334. data/vendor/cache/net-ssh-5.2.0.gem +0 -0
  335. data/vendor/cache/notiffany-0.1.1.gem +0 -0
  336. data/vendor/cache/pry-0.12.2.gem +0 -0
  337. data/vendor/cache/public_suffix-3.0.3.gem +0 -0
  338. data/vendor/cache/rack-2.0.6.gem +0 -0
  339. data/vendor/cache/rails-html-sanitizer-1.0.4.gem +0 -0
  340. data/vendor/cache/railties-5.2.2.gem +0 -0
  341. data/vendor/cache/rake-10.5.0.gem +0 -0
  342. data/vendor/cache/rb-fsevent-0.10.3.gem +0 -0
  343. data/vendor/cache/rb-inotify-0.10.0.gem +0 -0
  344. data/vendor/cache/ruby_dep-1.5.0.gem +0 -0
  345. data/vendor/cache/shoulda-3.6.0.gem +0 -0
  346. data/vendor/cache/shoulda-context-1.2.2.gem +0 -0
  347. data/vendor/cache/shoulda-matchers-3.1.2.gem +0 -0
  348. data/vendor/cache/sorcerer-1.0.2.gem +0 -0
  349. data/vendor/cache/thor-0.20.3.gem +0 -0
  350. data/vendor/cache/tzinfo-1.2.5.gem +0 -0
@@ -0,0 +1,17 @@
1
+
2
+ module Roro
3
+
4
+ class CLI < Thor
5
+
6
+ no_commands do
7
+
8
+ def config_std_out_true
9
+ prepend_to_file('config/boot.rb', "$stdout.sync = true\n\n", @env_hash[:use_force])
10
+ end
11
+
12
+ def gitignore_sensitive_files
13
+ append_to_file ".gitignore", "\nroro/**/*.env\nroro/**/*.key"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+
2
+ module Roro
3
+
4
+ class CLI < Thor
5
+
6
+ no_commands do
7
+
8
+ def choices
9
+ { default: 'y', limited_to: ["y", "n"] }
10
+ end
11
+
12
+ def own_if_required
13
+ system 'sudo chown -R $USER .'
14
+ end
15
+ end
16
+ end
17
+ end
@@ -16,7 +16,7 @@ module Roro
16
16
  end
17
17
 
18
18
  desc "generate_key", "Generate a key for each environment"
19
- method_option :environment, type: :string, default: {}, desc: "Pass a list of environment variables like so: env:var", banner: "development, staging"
19
+ method_option :environment, type: :hash, default: {}, desc: "Pass a list of environment variables like so: env:var", banner: "development, staging"
20
20
 
21
21
  def generate_key(*args)
22
22
  environments = args.first ? [args.first] : gather_environments
@@ -11,20 +11,24 @@ module Roro
11
11
  method_option :env_vars, type: :hash, default: {}, desc: "Pass a list of environment variables like so: env:var", banner: "key1:value1 key2:value2"
12
12
  method_option :interactive, desc: "Set up your environment variables as you go."
13
13
  method_option :force, desc: "force over-write of existing files"
14
-
14
+
15
+
15
16
  def greenfield
16
-
17
- confirm_dependencies
18
- copy_greenfield_files
19
- as_system("docker-compose run web rails new . --force --database=postgresql --skip-bundle")
20
- chown_if_required
21
- as_system('sudo docker-compose build')
22
- as_system('mv -f config/database.yml.example config/database.yml')
23
- as_system('docker-compose up --build --force-recreate -d ')
24
- as_system 'docker-compose run web bin/rails db:create'
17
+ get_configuration_variables
18
+ @env_hash[:use_force] = { force: true }
19
+ template 'greenfield/Dockerfile.tt', 'Dockerfile', @env_hash
20
+ system "DOCKER_BUILDKIT=1 docker build --file Dockerfile --output . ."
21
+ rollon_as_dockerized
25
22
  end
26
-
23
+
27
24
  no_commands do
25
+
26
+ def copy_greenfield_files
27
+ template 'greenfield/Dockerfile.tt', 'Dockerfile', @env_hash
28
+ template 'greenfield/docker-compose.yml', 'docker-compose.yml'
29
+ copy_file 'greenfield/Gemfile', 'Gemfile'
30
+ copy_file 'greenfield/Gemfile.lock', 'Gemfile.lock'
31
+ end
28
32
 
29
33
  def as_system(command)
30
34
  command = OS.linux? ? "sudo #{command}" : command
@@ -1,21 +1,28 @@
1
+ require_relative 'rollon/use_cases'
2
+
1
3
  module Roro
2
4
 
3
5
  class CLI < Thor
4
6
 
5
- method_option :env_vars, type: :hash, default: {}, desc: "Pass a list of environment variables like so: env:var", banner: "key1:value1 key2:value2"
6
- desc "rollon", "Generates files necessary to greenfield a new app within a dockerized rails container, along with a set of files necessary for continuous deployment using CircleCI"
7
+ desc "rollon", "Generates files and makes changes to your rails app necessary
8
+ to run it using Docker containers."
7
9
  method_option :interactive, desc: "Set up your environment variables as you go."
8
10
 
9
11
  def rollon
10
- configurate
11
- if Dir['./*'].empty?
12
- raise Roro::Error.new("Oops -- Roro can't roll itself onto a Rails app if it doesn't exist. Please either change into a directory with a Rails app or generate a new one using '$ roro greenfield'.")
13
- end
14
- copy_base_files
15
- append_to_existing_files
16
- insert_into_file 'Gemfile', "gem 'sshkit'\n\n", before: "group :development, :test do"
17
- insert_into_file 'Gemfile', "\n\tgem 'handsome_fencer-test'", after: "group :development, :test do"
18
-
12
+ # if Dir['./*'].empty?
13
+ # raise Roro::Error.new("Oops -- Roro can't roll itself onto a Rails app if it
14
+ # doesn't exist. Please either change into a directory with a Rails app or
15
+ # generate a new one using '$ roro greenfield'.")
16
+ # end
17
+ get_configuration_variables
18
+ # case ask("Configure using the Quickstart, Curated, or HandsomeFencer way?\n\n(1) Quikstart\n\n(2) Curated\n\n(3) HandsomeFencer\n\n", { default: '2', limited_to: %w(1 2 3) })
19
+ # when '1'
20
+ # rollon_as_quickstart
21
+ # when '2'
22
+ # rollon_as_dockerized
23
+ # when '3'
24
+ # end
25
+ rollon_as_dockerized
19
26
  end
20
27
  end
21
- end
28
+ end
@@ -0,0 +1,28 @@
1
+ module Roro
2
+
3
+ class CLI < Thor
4
+
5
+ no_commands do
6
+
7
+ def rollon_as_dockerized
8
+ copy_dockerignore
9
+ if @env_hash[:use_force][:force]
10
+ config_std_out_true
11
+ else
12
+ if ask('Configure $stdout.sync for docker?', choices).eql?('y')
13
+ end
14
+ end
15
+ copy_config_database_yml
16
+ insert_pg_gem_into_gemfile
17
+ copy_file 'dockerize/docker-compose.yml', 'docker-compose.yml'
18
+ template "dockerize/Dockerfile", 'Dockerfile', @env_hash
19
+ copy_file 'dockerize/docker-entrypoint.sh', 'docker-entrypoint.sh'
20
+ directory 'dockerize/.env', '.env'
21
+ system 'docker-compose build'
22
+ system 'docker-compose run --no-deps web bin/rails webpacker:install'
23
+ system 'docker-compose up'
24
+ copy_host_example
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,17 @@
1
+ module Roro
2
+ class CLI < Thor
3
+
4
+ no_commands do
5
+
6
+ def rollon_as_quickstart
7
+ copy_file "quickstart/docker-compose.yml", 'docker-compose.yml'
8
+ copy_file "quickstart/entrypoint.sh", 'entrypoint.sh'
9
+ copy_file "quickstart/database.yml", "config/database.yml"
10
+ template "quickstart/Dockerfile", 'Dockerfile', @env_hash
11
+
12
+ insert_pg_gem_into_gemfile
13
+ system 'sudo chown -R $USER .'
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,30 @@
1
+ module Roro
2
+
3
+ class CLI < Thor
4
+
5
+ no_commands do
6
+
7
+ def rollon_as_roro
8
+ if Dir['./*'].empty?
9
+ raise Roro::Error.new("Oops -- Roro can't roll itself onto a Rails app if it doesn't exist. Please either change into a directory with a Rails app or generate a new one using '$ roro greenfield'.")
10
+ end
11
+ if ask('Configure $stdout.sync for docker?', choices).eql?('y')
12
+ config_std_out_true
13
+ end
14
+ if ask('Configure .gitignore for roro?', choices).eql?('y')
15
+ gitignore_sensitive_files
16
+ end
17
+ if ask('Add RoRo to your Gemfile?', choices).eql?('y')
18
+ insert_roro_gem_into_gemfile
19
+ end
20
+ if ask('Add handsome_fencer-test to your Gemfile?', choices).eql?('y')
21
+ insert_hfci_gem_into_gemfile
22
+ end
23
+ if ask("Backup 'config/database.yml'?").eql?('y')
24
+ FileUtils.mv 'config/database.yml', "config/database.yml.backup"
25
+ end
26
+ copy_base_files
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,3 @@
1
+ require_relative 'as_quickstart.rb'
2
+ require_relative 'as_dockerize.rb'
3
+ require_relative 'as_roro.rb'
@@ -7,6 +7,12 @@ module Roro
7
7
  desc "ruby_gem", "Generate files for containerized gem testing, CircleCI, and releasing to RubyGems."
8
8
  method_option :rubies, type: :array, banner: "2.5.3 2.4.2"
9
9
 
10
+ no_commands do
11
+ def copy_ruby_gem_files
12
+ copy_file 'ruby_gem/config.yml', '.circleci/config.yml'
13
+ end
14
+ end
15
+
10
16
  def ruby_gem
11
17
  rubies = options["rubies"] || ["2.5.3", "2.6.0"]
12
18
  copy_file 'ruby_gem/docker-compose.yml', 'docker-compose.yml'
@@ -0,0 +1,13 @@
1
+ # Git
2
+ .git # <label id="chapter.fine-tuning-our-rails-image.dockerignore.git-history" />
3
+ .gitignore # <label id="chapter.fine-tuning-our-rails-image.dockerignore.gitignore" />
4
+
5
+ # Logs
6
+ log/* # <label id="chapter.fine-tuning-our-rails-image.dockerignore.log_dir" />
7
+
8
+ # Temp files
9
+ tmp/* # <label id="chapter.fine-tuning-our-rails-image.dockerignore.tmp_dir" />
10
+
11
+ # Editor temp files
12
+ *.swp # <label id="chapter.fine-tuning-our-rails-image.dockerignore.vim_swp_files" />
13
+ *.swo # <label id="chapter.fine-tuning-our-rails-image.dockerignore.vim_swo_files" />
@@ -13,9 +13,9 @@ jobs:
13
13
  - run: handsome_fencer-circle_c_i expose circleci
14
14
  - run: handsome_fencer-circle_c_i expose development
15
15
  - run: echo 'source docker/env_files/circleci.env' >> $BASH_ENV
16
- - run: docker-compose up -d app --build
17
- - run: docker-compose exec app bin/rails db:create db:migrate
18
- - run: docker-compose exec app bin/rails test
16
+ - run: docker-compose up -d <%= config[:app_name] %> --build
17
+ - run: docker-compose exec <%= config[:app_name] %> bin/rails db:create db:migrate
18
+ - run: docker-compose exec <%= config[:app_name] %> bin/rails test
19
19
 
20
20
  push:
21
21
  machine: true
@@ -25,11 +25,12 @@ jobs:
25
25
  - run: handsome_fencer-circle_c_i expose circleci
26
26
  - run: handsome_fencer-circle_c_i expose development
27
27
  - run: echo 'source docker/env_files/circleci.env' >> $BASH_ENV
28
- - run: docker-compose build app web
28
+ - run: docker-compose build <%= config[:app_name] %> web
29
+ - run: docker login -u $DOCKERHUB_USER -p $DOCKERHUB_PASS
29
30
  - run: docker login -u $DOCKERHUB_USER -p $DOCKERHUB_PASS
30
31
  - run:
31
- name: Tag app image
32
- command: docker tag $(docker images | grep project_app | awk '{ print $3 }') ${DOCKERHUB_ORG_NAME}/${APP_NAME}_app:$DEPLOY_TAG
32
+ name: Tag <%= config[:app_name] %> image
33
+ command: docker tag $(docker images | grep project_<%= config[:app_name] %> | awk '{ print $3 }') ${DOCKERHUB_ORG_NAME}/${APP_NAME}_app:$DEPLOY_TAG
33
34
  - run:
34
35
  name: Tag web image
35
36
  command: docker tag $(docker images | grep project_web | awk '{ print $3 }') ${DOCKERHUB_ORG_NAME}/${APP_NAME}_web:$DEPLOY_TAG
@@ -0,0 +1,53 @@
1
+ version: '3.2'
2
+
3
+ services:
4
+ chrome:
5
+ image: selenium/standalone-chrome-debug
6
+ volumes:
7
+ - /dev/shm:/dev/shm
8
+ <%= config[:app_name] %>:
9
+ build:
10
+ context: .
11
+ dockerfile: roro/containers/<%= config[:app_name] %>/Dockerfile
12
+
13
+ depends_on:
14
+ - <%= config[:database_container] %>
15
+ ports:
16
+ - "35729:35729"
17
+ - "3000:3000"
18
+ volumes:
19
+ - <%= config[:app_name] %>-data:/usr/src/<%= config[:app_name] %>
20
+ - gem_cache:/gems
21
+ env_file:
22
+ - roro/containers/<%= config[:database_container] %>/development.env
23
+ - roro/containers/<%= config[:app_name] %>/development.env
24
+ command: [ "bin/rails", "s" ]
25
+
26
+ stdin_open: true
27
+ tty: true
28
+ secrets:
29
+ - host_ssh_key
30
+
31
+ <%= config[:database_container] %>:
32
+ image: postgres
33
+
34
+ env_file:
35
+ - roro/containers/<%= config[:database_container] %>/development.env
36
+
37
+ volumes:
38
+ - <%= config[:database_container] %>-data:/var/lib/postgresql/data
39
+
40
+ web:
41
+ depends_on:
42
+ - <%= config[:app_name] %>
43
+ build:
44
+ context: .
45
+ dockerfile: roro/containers/web/Dockerfile
46
+ volumes:
47
+ <%= config[:database_container] %>-data:
48
+ gem_cache:
49
+ <%= config[:app_name] %>-data:
50
+
51
+ secrets:
52
+ host_ssh_key:
53
+ file: ~/.ssh/id_rsa
@@ -0,0 +1,7 @@
1
+ 127.0.0.1 localhost
2
+ ::1 ip6-localhost ip6-loopback
3
+ fe00::0 ip6-localnet
4
+ ff00::0 ip6-mcastprefix
5
+ ff02::1 ip6-allnodes
6
+ ff02::2 ip6-allrouters
7
+ 172.29.0.6 522da351e092
@@ -0,0 +1,32 @@
1
+ FROM ruby:<%= config[:ruby_version] %>
2
+ LABEL maintainer="<%= config[:dockerhub_email] %>"
3
+ # COPY docker/containers/web/app.conf /tmp/<%= config[:app_name] %>.nginx
4
+
5
+ # Allow apt to work with https-based sources
6
+ RUN apt-get update -yqq && apt-get install -yqq --no-install-recommends \
7
+ apt-transport-https
8
+
9
+ # Ensure we install an up-to-date version of Node
10
+ # See https://github.com/yarnpkg/yarn/issues/2888
11
+ RUN curl -sL https://deb.nodesource.com/setup_8.x | bash -
12
+
13
+ # Ensure latest packages for Yarn
14
+ RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
15
+ RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | \
16
+ tee /etc/apt/sources.list.d/yarn.list
17
+
18
+ # Install packages
19
+ RUN apt-get update -yqq && apt-get install -yqq --no-install-recommends \
20
+ nodejs \
21
+ yarn
22
+
23
+ COPY Gemfile* /usr/src/<%= config[:app_name] %>/
24
+ WORKDIR /usr/src/<%= config[:app_name] %>
25
+
26
+ ENV BUNDLE_PATH /gems
27
+
28
+ RUN bundle install
29
+
30
+ COPY . /usr/src/<%= config[:app_name] %>/
31
+
32
+ ENTRYPOINT ["roro/containers/web/docker-entrypoint.sh"]
@@ -0,0 +1 @@
1
+ DATABASE_HOST=<%= config[:database_container] %>
@@ -0,0 +1,8 @@
1
+ #!/bin/sh
2
+ set -e
3
+
4
+ if [ -f tmp/pids/server.pid ]; then
5
+ rm tmp/pids/server.pid
6
+ fi
7
+
8
+ exec "$@"
@@ -0,0 +1 @@
1
+ DATABASE_HOST=<%= config[:database_container] %>
@@ -0,0 +1,4 @@
1
+ POSTGRES_USER=<%= config[:postgres_user] %>
2
+ POSTGRES_PASSWORD=<%= config[:postgres_password] %>
3
+ POSTGRES_DB=<%= config[:app_name] + '_development' %>
4
+ RAILS_ENV=development
@@ -0,0 +1,4 @@
1
+ POSTGRES_USER=<%= config[:postgres_user] %>
2
+ POSTGRES_PASSWORD=<%= config[:postgres_password] %>
3
+ POSTGRES_DB=<%= config[:app_name] + '_test' %>
4
+ RAILS_ENV=test
@@ -0,0 +1,3 @@
1
+ POSTGRES_USER=postgres
2
+ POSTGRES_PASSWORD=some-long-secure-password
3
+ POSTGRES_DB=myapp_development
@@ -0,0 +1 @@
1
+ DATABASE_HOST=database
@@ -0,0 +1,23 @@
1
+ FROM ruby:<%= config[:ruby_version] %>
2
+
3
+
4
+ RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
5
+ RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
6
+ RUN apt-get update -qq && apt-get install -y build-essential git nodejs yarn
7
+
8
+
9
+ ENV APP_HOME /usr/src/app/
10
+ RUN mkdir $APP_HOME
11
+ WORKDIR $APP_HOME
12
+
13
+ COPY Gemfile* $APP_HOME
14
+
15
+ ENV BUNDLE_PATH /gems
16
+
17
+ RUN bundle install
18
+ RUN yarn
19
+
20
+ COPY . ./$APP_HOME
21
+
22
+
23
+
@@ -0,0 +1,60 @@
1
+ version: '3'
2
+
3
+ services:
4
+
5
+ web:
6
+ build: .
7
+ depends_on:
8
+ - database
9
+ - webpack_dev_server
10
+ - redis
11
+ # entrypoint: ./docker-entrypoint.sh
12
+ command: ["bin/rails", "s", "-b", "0.0.0.0"]
13
+
14
+ ports:
15
+ - "3000:3000"
16
+ - "4000:4000"
17
+ volumes:
18
+ - .:/usr/src/app
19
+ - gem_cache:/gems
20
+ env_file:
21
+ - .env/development/web
22
+ - .env/development/database
23
+ environment:
24
+ - WEBPACKER_DEV_SERVER_HOST=webpack_dev_server
25
+
26
+ webpack_dev_server:
27
+ build: .
28
+ command: ./bin/webpack-dev-server
29
+ ports:
30
+ - 3035:3035
31
+ volumes:
32
+ - .:/usr/src/app
33
+ - gem_cache:/gems
34
+ env_file:
35
+ - .env/development/database
36
+ - .env/development/web
37
+ environment:
38
+ - WEBPACKER_DEV_SERVER_HOST=0.0.0.0
39
+
40
+ redis:
41
+ image: redis
42
+
43
+ database:
44
+ image: postgres
45
+ env_file:
46
+ - .env/development/database
47
+ volumes:
48
+ - db_data:/var/lib/postgresql/data
49
+
50
+ system_tests:
51
+ image: selenium/standalone-chrome-debug
52
+ logging:
53
+ driver: none
54
+ ports:
55
+ - "35729:35729"
56
+ - "5900:5900"
57
+
58
+ volumes:
59
+ db_data:
60
+ gem_cache: