roro 0.3.0 → 0.3.6

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 (359) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -8
  3. data/Guardfile +11 -4
  4. data/lib/roro.rb +1 -1
  5. data/lib/roro/cli.rb +6 -4
  6. data/lib/roro/cli/base/base.rb +8 -0
  7. data/lib/roro/cli/base/base_files.rb +24 -0
  8. data/lib/roro/cli/base/check_dependencies.rb +98 -0
  9. data/lib/roro/cli/base/continuous_integration.rb +13 -0
  10. data/lib/roro/cli/base/insert_gems.rb +31 -0
  11. data/lib/roro/cli/base/insertions.rb +19 -0
  12. data/lib/roro/cli/base/utilities.rb +39 -0
  13. data/lib/roro/cli/configuration.rb +68 -0
  14. data/lib/roro/cli/generate/config.rb +13 -0
  15. data/lib/roro/cli/generate/config/rails.rb +17 -0
  16. data/lib/roro/cli/generate/generate.rb +1 -0
  17. data/lib/roro/cli/generate/generate_keys.rb +79 -0
  18. data/lib/roro/cli/generate_keys.rb +1 -1
  19. data/lib/roro/cli/greenfield.rb +20 -75
  20. data/lib/roro/cli/rollon.rb +74 -11
  21. data/lib/roro/cli/rollon/database/database.rb +31 -0
  22. data/lib/roro/cli/rollon/database/with_mysql.rb +22 -0
  23. data/lib/roro/cli/rollon/database/with_postgres.rb +21 -0
  24. data/lib/roro/cli/rollon/stories.rb +3 -0
  25. data/lib/roro/cli/roro_configurator.yml +157 -0
  26. data/lib/roro/cli/ruby_gem.rb +6 -0
  27. data/lib/roro/cli/templates/base/.dockerignore +51 -0
  28. data/{docker/env_files → lib/roro/cli/templates/base/.env}/.keep +0 -0
  29. data/lib/roro/cli/templates/base/.env/database.mysql.env.tt +4 -0
  30. data/lib/roro/cli/templates/base/.env/database.pg.env.tt +5 -0
  31. data/{test_apps/dummy_roro/docker/containers/app/staging.env → lib/roro/cli/templates/base/.env/web.env.tt} +0 -1
  32. data/{docker/keys → lib/roro/cli/templates/base}/.keep +0 -0
  33. data/lib/roro/cli/templates/base/.roro_config.yml +15 -0
  34. data/lib/roro/cli/templates/base/Dockerfile.tt +44 -0
  35. data/lib/roro/cli/templates/base/config/database.mysql.yml +19 -0
  36. data/lib/roro/cli/templates/{config/database.yml → base/config/database.pg.yml} +0 -0
  37. data/{test_apps/dummy_roro/.circleci/config.yml → lib/roro/cli/templates/circleci/config.yml.tt} +7 -6
  38. data/lib/roro/cli/templates/{docker/containers/database → dockerize/.env}/.keep +0 -0
  39. data/lib/roro/cli/templates/{docker/env_files → 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/lib/roro/cli/templates/{docker/keys → 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.tt +60 -0
  45. data/lib/roro/cli/templates/dockerize/docker-entrypoint.sh +9 -0
  46. data/lib/roro/cli/templates/greenfield/Dockerfile.tt +43 -0
  47. data/{test_apps/dummy/app/assets/images → lib/roro/cli/templates/jumpstart/.env}/.keep +0 -0
  48. data/{test_apps/dummy/app/assets/javascripts/channels → lib/roro/cli/templates/jumpstart/.env/development}/.keep +0 -0
  49. data/lib/roro/cli/templates/jumpstart/.env/development/database +3 -0
  50. data/lib/roro/cli/templates/jumpstart/.env/development/web +1 -0
  51. data/{test_apps/dummy/app/controllers/concerns → lib/roro/cli/templates/jumpstart}/.keep +0 -0
  52. data/lib/roro/cli/templates/jumpstart/Dockerfile.tt +30 -0
  53. data/lib/roro/cli/templates/jumpstart/docker-compose.yml +59 -0
  54. data/lib/roro/cli/templates/jumpstart/docker-entrypoint.sh +16 -0
  55. data/lib/roro/cli/templates/livereload/hosts.example +7 -0
  56. data/lib/roro/cli/templates/quickstart/Dockerfile.tt +20 -0
  57. data/{test_apps/dummy/config → lib/roro/cli/templates/quickstart}/database.yml +12 -12
  58. data/lib/roro/cli/templates/{greenfield → quickstart}/docker-compose.yml +4 -2
  59. data/lib/roro/cli/templates/quickstart/entrypoint.sh +8 -0
  60. data/{test_apps/dummy/app/models/concerns → lib/roro/cli/templates/roro}/.keep +0 -0
  61. data/lib/roro/cli/templates/roro/docker-compose.yml.tt +60 -0
  62. data/{test_apps/dummy/lib/assets → lib/roro/cli/templates/roro/roro}/.keep +0 -0
  63. data/{test_apps/dummy/lib/tasks → lib/roro/cli/templates/roro/roro/containers}/.keep +0 -0
  64. data/{test_apps/dummy/log → lib/roro/cli/templates/roro/roro/containers/app}/.keep +0 -0
  65. data/{test_apps/dummy/storage → lib/roro/cli/templates/roro/roro/containers/frontend}/.keep +0 -0
  66. data/lib/roro/cli/templates/roro/roro/docker-entrypoint.sh.tt +8 -0
  67. data/lib/roro/cli/templates/ruby_gem/.gitignore +8 -0
  68. data/{test_apps/dummy/test/controllers → lib/roro/cli/templates/stories}/.keep +0 -0
  69. data/lib/roro/cli/templates/stories/with_mysql/_service.yml +10 -0
  70. data/{test_apps/dummy/test/fixtures → lib/roro/cli/templates/stories/with_postgresql}/.keep +0 -0
  71. data/lib/roro/cli/templates/stories/with_postgresql/_service.yml +7 -0
  72. data/lib/roro/version.rb +1 -1
  73. data/roro.gemspec +6 -3
  74. data/vendor/cache/actionpack-6.0.3.2.gem +0 -0
  75. data/vendor/cache/actionview-6.0.3.2.gem +0 -0
  76. data/vendor/cache/activesupport-6.0.3.2.gem +0 -0
  77. data/vendor/cache/addressable-2.7.0.gem +0 -0
  78. data/vendor/cache/builder-3.2.4.gem +0 -0
  79. data/vendor/cache/byebug-11.1.3.gem +0 -0
  80. data/vendor/cache/coderay-1.1.3.gem +0 -0
  81. data/vendor/cache/concurrent-ruby-1.1.6.gem +0 -0
  82. data/vendor/cache/crass-1.0.6.gem +0 -0
  83. data/vendor/cache/erubi-1.9.0.gem +0 -0
  84. data/vendor/cache/ffi-1.13.1.gem +0 -0
  85. data/vendor/cache/guard-2.16.2.gem +0 -0
  86. data/vendor/cache/i18n-1.8.5.gem +0 -0
  87. data/vendor/cache/launchy-2.5.0.gem +0 -0
  88. data/vendor/cache/listen-3.2.1.gem +0 -0
  89. data/vendor/cache/loofah-2.6.0.gem +0 -0
  90. data/vendor/cache/lumberjack-1.2.7.gem +0 -0
  91. data/vendor/cache/method_source-1.0.0.gem +0 -0
  92. data/vendor/cache/minitest-5.14.1.gem +0 -0
  93. data/vendor/cache/minitest-rails-6.0.1.gem +0 -0
  94. data/vendor/cache/mocha-1.11.2.gem +0 -0
  95. data/vendor/cache/multi_json-1.15.0.gem +0 -0
  96. data/vendor/cache/net-scp-3.0.0.gem +0 -0
  97. data/vendor/cache/net-ssh-6.1.0.gem +0 -0
  98. data/vendor/cache/{nokogiri-1.9.1.gem → nokogiri-1.10.10.gem} +0 -0
  99. data/vendor/cache/notiffany-0.1.3.gem +0 -0
  100. data/vendor/cache/pry-0.13.1.gem +0 -0
  101. data/vendor/cache/public_suffix-4.0.5.gem +0 -0
  102. data/vendor/cache/rack-2.2.3.gem +0 -0
  103. data/vendor/cache/rails-html-sanitizer-1.3.0.gem +0 -0
  104. data/vendor/cache/railties-6.0.3.2.gem +0 -0
  105. data/vendor/cache/rake-13.0.1.gem +0 -0
  106. data/vendor/cache/rb-fsevent-0.10.4.gem +0 -0
  107. data/vendor/cache/rb-inotify-0.10.1.gem +0 -0
  108. data/vendor/cache/shoulda-4.0.0.gem +0 -0
  109. data/vendor/cache/shoulda-context-2.0.0.gem +0 -0
  110. data/vendor/cache/shoulda-matchers-4.3.0.gem +0 -0
  111. data/vendor/cache/sorcerer-2.0.1.gem +0 -0
  112. data/vendor/cache/thor-1.0.1.gem +0 -0
  113. data/vendor/cache/tzinfo-1.2.7.gem +0 -0
  114. data/vendor/cache/zeitwerk-2.4.0.gem +0 -0
  115. metadata +142 -276
  116. data/.circleci/config.yml +0 -177
  117. data/.circleci/setup-gem-credentials.sh +0 -3
  118. data/.ruby-version +0 -1
  119. data/Gemfile.lock +0 -165
  120. data/_config.yml +0 -1
  121. data/docker-compose.yml +0 -21
  122. data/docker/containers/2_5_3/Dockerfile +0 -10
  123. data/docker/containers/2_6_0/Dockerfile +0 -10
  124. data/docker/containers/app/Dockerfile +0 -10
  125. data/docker/env_files/circleci.env.enc +0 -5
  126. data/lib/roro/cli/base.rb +0 -137
  127. data/lib/roro/cli/templates/Gemfile.lock +0 -0
  128. data/lib/roro/cli/templates/Guardfile +0 -81
  129. data/lib/roro/cli/templates/circleci/Rakefile +0 -4
  130. data/lib/roro/cli/templates/circleci/config.job-example.yml +0 -33
  131. data/lib/roro/cli/templates/circleci/config.yml +0 -69
  132. data/lib/roro/cli/templates/circleci/config.yml.workflow-example +0 -62
  133. data/lib/roro/cli/templates/circleci/deploy.rake +0 -127
  134. data/lib/roro/cli/templates/config.yml +0 -71
  135. data/lib/roro/cli/templates/docker-compose.yml +0 -53
  136. data/lib/roro/cli/templates/docker/containers/app/Dockerfile.tt +0 -12
  137. data/lib/roro/cli/templates/docker/containers/web/Dockerfile.tt +0 -18
  138. data/lib/roro/cli/templates/docker/containers/web/app.conf.tt +0 -23
  139. data/lib/roro/cli/templates/docker/overrides/circleci.yml.tt +0 -19
  140. data/lib/roro/cli/templates/docker/overrides/production.yml.tt +0 -26
  141. data/lib/roro/cli/templates/docker/web/Dockerfile +0 -20
  142. data/lib/roro/cli/templates/docker/web/app.conf +0 -23
  143. data/lib/roro/cli/templates/gitignore +0 -27
  144. data/lib/roro/cli/templates/greenfield/Dockerfile +0 -8
  145. data/lib/roro/cli/templates/greenfield/Gemfile +0 -2
  146. data/lib/roro/cli/templates/greenfield/Gemfile.lock +0 -0
  147. data/lib/roro/cli/templates/greenfield/config/database.yml.example +0 -16
  148. data/lib/roro/cli/templates/lib/tasks/deploy.rake +0 -126
  149. data/test_apps/dummy/.gitignore +0 -27
  150. data/test_apps/dummy/Gemfile +0 -61
  151. data/test_apps/dummy/README.md +0 -24
  152. data/test_apps/dummy/Rakefile +0 -6
  153. data/test_apps/dummy/app/assets/config/manifest.js +0 -3
  154. data/test_apps/dummy/app/assets/javascripts/application.js +0 -16
  155. data/test_apps/dummy/app/assets/javascripts/cable.js +0 -13
  156. data/test_apps/dummy/app/assets/stylesheets/application.css +0 -15
  157. data/test_apps/dummy/app/channels/application_cable/channel.rb +0 -4
  158. data/test_apps/dummy/app/channels/application_cable/connection.rb +0 -4
  159. data/test_apps/dummy/app/controllers/application_controller.rb +0 -2
  160. data/test_apps/dummy/app/helpers/application_helper.rb +0 -2
  161. data/test_apps/dummy/app/jobs/application_job.rb +0 -2
  162. data/test_apps/dummy/app/mailers/application_mailer.rb +0 -4
  163. data/test_apps/dummy/app/models/application_record.rb +0 -3
  164. data/test_apps/dummy/app/views/layouts/application.html.erb +0 -15
  165. data/test_apps/dummy/app/views/layouts/mailer.html.erb +0 -13
  166. data/test_apps/dummy/app/views/layouts/mailer.text.erb +0 -1
  167. data/test_apps/dummy/bin/bundle +0 -3
  168. data/test_apps/dummy/bin/rails +0 -4
  169. data/test_apps/dummy/bin/rake +0 -4
  170. data/test_apps/dummy/bin/setup +0 -36
  171. data/test_apps/dummy/bin/update +0 -31
  172. data/test_apps/dummy/bin/yarn +0 -11
  173. data/test_apps/dummy/config.ru +0 -5
  174. data/test_apps/dummy/config/application.rb +0 -19
  175. data/test_apps/dummy/config/boot.rb +0 -4
  176. data/test_apps/dummy/config/cable.yml +0 -10
  177. data/test_apps/dummy/config/credentials.yml.enc +0 -1
  178. data/test_apps/dummy/config/environment.rb +0 -5
  179. data/test_apps/dummy/config/environments/development.rb +0 -61
  180. data/test_apps/dummy/config/environments/production.rb +0 -94
  181. data/test_apps/dummy/config/environments/test.rb +0 -46
  182. data/test_apps/dummy/config/initializers/application_controller_renderer.rb +0 -8
  183. data/test_apps/dummy/config/initializers/assets.rb +0 -14
  184. data/test_apps/dummy/config/initializers/backtrace_silencers.rb +0 -7
  185. data/test_apps/dummy/config/initializers/content_security_policy.rb +0 -25
  186. data/test_apps/dummy/config/initializers/cookies_serializer.rb +0 -5
  187. data/test_apps/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  188. data/test_apps/dummy/config/initializers/inflections.rb +0 -16
  189. data/test_apps/dummy/config/initializers/mime_types.rb +0 -4
  190. data/test_apps/dummy/config/initializers/wrap_parameters.rb +0 -14
  191. data/test_apps/dummy/config/locales/en.yml +0 -33
  192. data/test_apps/dummy/config/puma.rb +0 -34
  193. data/test_apps/dummy/config/routes.rb +0 -3
  194. data/test_apps/dummy/config/spring.rb +0 -6
  195. data/test_apps/dummy/config/storage.yml +0 -34
  196. data/test_apps/dummy/db/seeds.rb +0 -7
  197. data/test_apps/dummy/package.json +0 -5
  198. data/test_apps/dummy/public/404.html +0 -67
  199. data/test_apps/dummy/public/422.html +0 -67
  200. data/test_apps/dummy/public/500.html +0 -66
  201. data/test_apps/dummy/public/apple-touch-icon-precomposed.png +0 -0
  202. data/test_apps/dummy/public/apple-touch-icon.png +0 -0
  203. data/test_apps/dummy/public/favicon.ico +0 -0
  204. data/test_apps/dummy/public/robots.txt +0 -1
  205. data/test_apps/dummy/test/application_system_test_case.rb +0 -5
  206. data/test_apps/dummy/test/fixtures/files/.keep +0 -0
  207. data/test_apps/dummy/test/helpers/.keep +0 -0
  208. data/test_apps/dummy/test/integration/.keep +0 -0
  209. data/test_apps/dummy/test/mailers/.keep +0 -0
  210. data/test_apps/dummy/test/models/.keep +0 -0
  211. data/test_apps/dummy/test/system/.keep +0 -0
  212. data/test_apps/dummy/test/test_helper.rb +0 -10
  213. data/test_apps/dummy/tmp/.keep +0 -0
  214. data/test_apps/dummy/vendor/.keep +0 -0
  215. data/test_apps/dummy_gem/.keep +0 -0
  216. data/test_apps/dummy_roro/.circleci/Rakefile +0 -4
  217. data/test_apps/dummy_roro/.circleci/config.job-example.yml +0 -33
  218. data/test_apps/dummy_roro/.circleci/config.yml.workflow-example +0 -62
  219. data/test_apps/dummy_roro/.circleci/deploy.rake +0 -127
  220. data/test_apps/dummy_roro/.gitignore +0 -27
  221. data/test_apps/dummy_roro/Gemfile +0 -64
  222. data/test_apps/dummy_roro/README.md +0 -24
  223. data/test_apps/dummy_roro/Rakefile +0 -6
  224. data/test_apps/dummy_roro/app/assets/config/manifest.js +0 -3
  225. data/test_apps/dummy_roro/app/assets/images/.keep +0 -0
  226. data/test_apps/dummy_roro/app/assets/javascripts/application.js +0 -16
  227. data/test_apps/dummy_roro/app/assets/javascripts/cable.js +0 -13
  228. data/test_apps/dummy_roro/app/assets/javascripts/channels/.keep +0 -0
  229. data/test_apps/dummy_roro/app/assets/stylesheets/application.css +0 -15
  230. data/test_apps/dummy_roro/app/channels/application_cable/channel.rb +0 -4
  231. data/test_apps/dummy_roro/app/channels/application_cable/connection.rb +0 -4
  232. data/test_apps/dummy_roro/app/controllers/application_controller.rb +0 -2
  233. data/test_apps/dummy_roro/app/controllers/concerns/.keep +0 -0
  234. data/test_apps/dummy_roro/app/helpers/application_helper.rb +0 -2
  235. data/test_apps/dummy_roro/app/jobs/application_job.rb +0 -2
  236. data/test_apps/dummy_roro/app/mailers/application_mailer.rb +0 -4
  237. data/test_apps/dummy_roro/app/models/application_record.rb +0 -3
  238. data/test_apps/dummy_roro/app/models/concerns/.keep +0 -0
  239. data/test_apps/dummy_roro/app/views/layouts/application.html.erb +0 -15
  240. data/test_apps/dummy_roro/app/views/layouts/mailer.html.erb +0 -13
  241. data/test_apps/dummy_roro/app/views/layouts/mailer.text.erb +0 -1
  242. data/test_apps/dummy_roro/bin/bundle +0 -3
  243. data/test_apps/dummy_roro/bin/rails +0 -4
  244. data/test_apps/dummy_roro/bin/rake +0 -4
  245. data/test_apps/dummy_roro/bin/setup +0 -36
  246. data/test_apps/dummy_roro/bin/update +0 -31
  247. data/test_apps/dummy_roro/bin/yarn +0 -11
  248. data/test_apps/dummy_roro/config.ru +0 -5
  249. data/test_apps/dummy_roro/config/application.rb +0 -19
  250. data/test_apps/dummy_roro/config/boot.rb +0 -4
  251. data/test_apps/dummy_roro/config/cable.yml +0 -10
  252. data/test_apps/dummy_roro/config/credentials.yml.enc +0 -1
  253. data/test_apps/dummy_roro/config/database.yml +0 -20
  254. data/test_apps/dummy_roro/config/environment.rb +0 -5
  255. data/test_apps/dummy_roro/config/environments/development.rb +0 -61
  256. data/test_apps/dummy_roro/config/environments/production.rb +0 -94
  257. data/test_apps/dummy_roro/config/environments/test.rb +0 -46
  258. data/test_apps/dummy_roro/config/initializers/application_controller_renderer.rb +0 -8
  259. data/test_apps/dummy_roro/config/initializers/assets.rb +0 -14
  260. data/test_apps/dummy_roro/config/initializers/backtrace_silencers.rb +0 -7
  261. data/test_apps/dummy_roro/config/initializers/content_security_policy.rb +0 -25
  262. data/test_apps/dummy_roro/config/initializers/cookies_serializer.rb +0 -5
  263. data/test_apps/dummy_roro/config/initializers/filter_parameter_logging.rb +0 -4
  264. data/test_apps/dummy_roro/config/initializers/inflections.rb +0 -16
  265. data/test_apps/dummy_roro/config/initializers/mime_types.rb +0 -4
  266. data/test_apps/dummy_roro/config/initializers/wrap_parameters.rb +0 -14
  267. data/test_apps/dummy_roro/config/locales/en.yml +0 -33
  268. data/test_apps/dummy_roro/config/puma.rb +0 -34
  269. data/test_apps/dummy_roro/config/routes.rb +0 -3
  270. data/test_apps/dummy_roro/config/spring.rb +0 -6
  271. data/test_apps/dummy_roro/config/storage.yml +0 -34
  272. data/test_apps/dummy_roro/db/seeds.rb +0 -7
  273. data/test_apps/dummy_roro/docker-compose.yml +0 -51
  274. data/test_apps/dummy_roro/docker/containers/app/Dockerfile +0 -12
  275. data/test_apps/dummy_roro/docker/containers/app/circleci.env +0 -2
  276. data/test_apps/dummy_roro/docker/containers/app/development.env +0 -2
  277. data/test_apps/dummy_roro/docker/containers/app/production.env +0 -2
  278. data/test_apps/dummy_roro/docker/containers/database/.keep +0 -0
  279. data/test_apps/dummy_roro/docker/containers/database/circleci.env +0 -3
  280. data/test_apps/dummy_roro/docker/containers/database/development.env +0 -3
  281. data/test_apps/dummy_roro/docker/containers/database/production.env +0 -3
  282. data/test_apps/dummy_roro/docker/containers/database/staging.env +0 -3
  283. data/test_apps/dummy_roro/docker/containers/web/Dockerfile +0 -18
  284. data/test_apps/dummy_roro/docker/containers/web/app.conf +0 -23
  285. data/test_apps/dummy_roro/docker/containers/web/circleci.env +0 -1
  286. data/test_apps/dummy_roro/docker/containers/web/development.env +0 -1
  287. data/test_apps/dummy_roro/docker/containers/web/production.env +0 -1
  288. data/test_apps/dummy_roro/docker/containers/web/staging.env +0 -1
  289. data/test_apps/dummy_roro/docker/env_files/circleci.env +0 -12
  290. data/test_apps/dummy_roro/docker/env_files/circleci.env.enc +0 -14
  291. data/test_apps/dummy_roro/docker/env_files/production.env +0 -2
  292. data/test_apps/dummy_roro/docker/env_files/production.env.enc +0 -2
  293. data/test_apps/dummy_roro/docker/keys/.keep +0 -0
  294. data/test_apps/dummy_roro/docker/overrides/circleci.yml +0 -19
  295. data/test_apps/dummy_roro/docker/overrides/production.yml +0 -26
  296. data/test_apps/dummy_roro/lib/assets/.keep +0 -0
  297. data/test_apps/dummy_roro/lib/tasks/.keep +0 -0
  298. data/test_apps/dummy_roro/lib/tasks/deploy.rake +0 -126
  299. data/test_apps/dummy_roro/log/.keep +0 -0
  300. data/test_apps/dummy_roro/package.json +0 -5
  301. data/test_apps/dummy_roro/public/404.html +0 -67
  302. data/test_apps/dummy_roro/public/422.html +0 -67
  303. data/test_apps/dummy_roro/public/500.html +0 -66
  304. data/test_apps/dummy_roro/public/apple-touch-icon-precomposed.png +0 -0
  305. data/test_apps/dummy_roro/public/apple-touch-icon.png +0 -0
  306. data/test_apps/dummy_roro/public/favicon.ico +0 -0
  307. data/test_apps/dummy_roro/public/robots.txt +0 -1
  308. data/test_apps/dummy_roro/storage/.keep +0 -0
  309. data/test_apps/dummy_roro/test/application_system_test_case.rb +0 -5
  310. data/test_apps/dummy_roro/test/controllers/.keep +0 -0
  311. data/test_apps/dummy_roro/test/fixtures/.keep +0 -0
  312. data/test_apps/dummy_roro/test/fixtures/files/.keep +0 -0
  313. data/test_apps/dummy_roro/test/helpers/.keep +0 -0
  314. data/test_apps/dummy_roro/test/integration/.keep +0 -0
  315. data/test_apps/dummy_roro/test/mailers/.keep +0 -0
  316. data/test_apps/dummy_roro/test/models/.keep +0 -0
  317. data/test_apps/dummy_roro/test/system/.keep +0 -0
  318. data/test_apps/dummy_roro/test/test_helper.rb +0 -10
  319. data/test_apps/dummy_roro/tmp/.keep +0 -0
  320. data/test_apps/dummy_roro/vendor/.keep +0 -0
  321. data/test_apps/greenfield/.keep +0 -0
  322. data/vendor/cache/actionpack-5.2.2.gem +0 -0
  323. data/vendor/cache/actionview-5.2.2.gem +0 -0
  324. data/vendor/cache/activesupport-5.2.2.gem +0 -0
  325. data/vendor/cache/addressable-2.5.2.gem +0 -0
  326. data/vendor/cache/builder-3.2.3.gem +0 -0
  327. data/vendor/cache/coderay-1.1.2.gem +0 -0
  328. data/vendor/cache/concurrent-ruby-1.1.4.gem +0 -0
  329. data/vendor/cache/crass-1.0.4.gem +0 -0
  330. data/vendor/cache/erubi-1.8.0.gem +0 -0
  331. data/vendor/cache/ffi-1.9.25.gem +0 -0
  332. data/vendor/cache/guard-2.15.0.gem +0 -0
  333. data/vendor/cache/i18n-1.3.0.gem +0 -0
  334. data/vendor/cache/launchy-2.4.3.gem +0 -0
  335. data/vendor/cache/listen-3.1.5.gem +0 -0
  336. data/vendor/cache/loofah-2.2.3.gem +0 -0
  337. data/vendor/cache/lumberjack-1.0.13.gem +0 -0
  338. data/vendor/cache/method_source-0.9.2.gem +0 -0
  339. data/vendor/cache/minitest-5.11.3.gem +0 -0
  340. data/vendor/cache/minitest-rails-3.0.0.gem +0 -0
  341. data/vendor/cache/multi_json-1.13.1.gem +0 -0
  342. data/vendor/cache/net-scp-2.0.0.gem +0 -0
  343. data/vendor/cache/net-ssh-5.2.0.gem +0 -0
  344. data/vendor/cache/notiffany-0.1.1.gem +0 -0
  345. data/vendor/cache/pry-0.12.2.gem +0 -0
  346. data/vendor/cache/public_suffix-3.0.3.gem +0 -0
  347. data/vendor/cache/rack-2.0.6.gem +0 -0
  348. data/vendor/cache/rails-html-sanitizer-1.0.4.gem +0 -0
  349. data/vendor/cache/railties-5.2.2.gem +0 -0
  350. data/vendor/cache/rake-10.5.0.gem +0 -0
  351. data/vendor/cache/rb-fsevent-0.10.3.gem +0 -0
  352. data/vendor/cache/rb-inotify-0.10.0.gem +0 -0
  353. data/vendor/cache/ruby_dep-1.5.0.gem +0 -0
  354. data/vendor/cache/shoulda-3.6.0.gem +0 -0
  355. data/vendor/cache/shoulda-context-1.2.2.gem +0 -0
  356. data/vendor/cache/shoulda-matchers-3.1.2.gem +0 -0
  357. data/vendor/cache/sorcerer-1.0.2.gem +0 -0
  358. data/vendor/cache/thor-0.20.3.gem +0 -0
  359. data/vendor/cache/tzinfo-1.2.5.gem +0 -0
@@ -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,51 @@
1
+ .git
2
+ .gitignore
3
+ README.md
4
+
5
+ #
6
+ # OS X
7
+ #
8
+ .DS_Store
9
+ .AppleDouble
10
+ .LSOverride
11
+ # Icon must end with two \r
12
+ Icon
13
+ # Thumbnails
14
+ ._*
15
+ # Files that might appear on external disk
16
+ .Spotlight-V100
17
+ .Trashes
18
+ # Directories potentially created on remote AFP share
19
+ .AppleDB
20
+ .AppleDesktop
21
+ Network Trash Folder
22
+ Temporary Items
23
+ .apdisk
24
+
25
+ #
26
+ # Rails
27
+ #
28
+ .env
29
+ .env.sample
30
+ *.rbc
31
+ capybara-*.html
32
+ log
33
+ tmp
34
+ db/*.sqlite3
35
+ db/*.sqlite3-journal
36
+ public/system
37
+ coverage/
38
+ spec/tmp
39
+ **.orig
40
+
41
+ .bundle
42
+
43
+ .ruby-version
44
+ .ruby-gemset
45
+
46
+ .rvmrc
47
+
48
+ # if using bower-rails ignore default bower_components path bower.json files
49
+ vendor/assets/bower_components
50
+ *.bowerrc
51
+ bower.json
@@ -0,0 +1,4 @@
1
+ <% config['mysql_env_vars'].each do |k,v| %><%= "\n" + k + "=" + v %><% end %>
2
+ MYSQL_DATABASE=<%= config['main_app_name'] + "_db"%>
3
+ RAILS_ENV=<%= config['rails_env'] %>
4
+ RAILS_LOG_TO_STDOUT=true
@@ -0,0 +1,5 @@
1
+ <% config['postgresql_env_vars'].each do |k,v| %><%= "\n" + k + "=" + v %><% end %>
2
+ POSTGRES_DB=<%= config['main_app_name'] + "_" + config['rails_env'] %>
3
+ RAILS_ENV=<%= config['rails_env'] %>
4
+ RAILS_LOG_TO_STDOUT=true
5
+
@@ -0,0 +1,15 @@
1
+ ---
2
+ main_app_name: greenfield
3
+ database_host: database
4
+ ruby_version: '2.7'
5
+ frontend_service: frontend
6
+ webserver_service: nginx
7
+ database_service: database
8
+ database_vendor: mysql
9
+ mysql_env_vars:
10
+ MYSQL_ROOT_PASSWORD: root
11
+ MYSQL_PASSWORD: root
12
+ MYSQL_USERNAME: root
13
+ MYSQL_DATABASE_PORT: '3306'
14
+ thor_actions:
15
+ insert_hfci_gem_into_gemfile: y
@@ -0,0 +1,44 @@
1
+ FROM ruby:<%= config['ruby_version'] %>
2
+ LABEL maintainer="<%= config['dockerhub_email'] %>"
3
+
4
+
5
+ ## Make sure we have yarn properly sourced:
6
+ RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
7
+ RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
8
+
9
+ ## Update OS and download yarm from source specified above:
10
+ RUN apt-get update -qq && apt-get install -y build-essential git nodejs yarn
11
+
12
+ ## Set up our workspace directories:
13
+ ENV APP_HOME /usr/src/app/
14
+ RUN mkdir ${APP_HOME}
15
+
16
+ ## Tell bundler where to store downloaded gems:
17
+ ENV BUNDLE_PATH /gems
18
+ RUN mkdir ${BUNDLE_PATH}}
19
+
20
+ ## Tell Docker to create volumes for our workspace and gems
21
+ ## so other containers can access them.
22
+ VOLUME ${APP_HOME}
23
+ VOLUME /gems
24
+
25
+ ## To speed up development, copy Gemfile and Gemfile.lock from host
26
+ ## and then bundle so changing other parts of the app don't trigger
27
+ ## a full gem install.
28
+ COPY Gemfile* ./
29
+
30
+ WORKDIR ${APP_HOME}
31
+
32
+ RUN bundle
33
+
34
+ COPY roro/docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
35
+ RUN chmod +x /usr/bin/docker-entrypoint.sh
36
+ ENTRYPOINT ["docker-entrypoint.sh"]
37
+
38
+ COPY . /usr/src/app/
39
+
40
+ # RUN chmod +x /usr/src/app/roro/docker-entrypoint.sh
41
+ # ENTRYPOINT ["/usr/src/app/roro/docker-entrypoint.sh"]
42
+
43
+
44
+
@@ -0,0 +1,19 @@
1
+ default: &default
2
+ adapter: mysql2
3
+ encoding: utf8
4
+ pool: <%= ENV.fetch('RAILS_MAX_THREADS') { 5 } %>
5
+ host: <%= ENV.fetch('DATABASE_HOST') %>
6
+ username: <%= ENV.fetch('MYSQL_USERNAME') %>
7
+ password: <%= ENV.fetch('MYSQL_PASSWORD') %>
8
+ database: <%= ENV.fetch('MYSQL_DATABASE') %>
9
+ port: <%= ENV.fetch('MYSQL_DATABASE_PORT') %>
10
+ socket: /var/run/mysqld/mysqlx.sock
11
+
12
+ development:
13
+ <<: *default
14
+
15
+ test:
16
+ <<: *default
17
+
18
+ production:
19
+ <<: *default
@@ -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,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:
@@ -0,0 +1,9 @@
1
+ #!/bin/sh
2
+
3
+ set -e
4
+
5
+ if [ -f tmp/pids/server.pid ]; then
6
+ rm tmp/pids/server.pid
7
+ fi
8
+
9
+ exec "$@"
@@ -0,0 +1,43 @@
1
+ FROM ruby:<%= config['ruby_version'] %> AS builder
2
+
3
+ ## Make sure we have yarn properly sourced:
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
+
7
+ ## Update OS and download yarm from source specified above:
8
+ RUN apt-get update -qq && apt-get install -y build-essential git nodejs yarn
9
+
10
+ ## Set up our workspace directories:
11
+ ENV APP_HOME /usr/src/app/
12
+ RUN mkdir ${APP_HOME}
13
+
14
+ ## Tell bundler where to store downloaded gems:
15
+ ENV BUNDLE_PATH /gems
16
+ RUN mkdir ${BUNDLE_PATH}}
17
+
18
+ ## Tell Docker to create volumes for our workspace and gems
19
+ ## so other containers can access them.
20
+ VOLUME ${APP_HOME}
21
+ VOLUME /gems
22
+
23
+ ## Create a Gemfile with just the Rails gem inside:
24
+ RUN echo "source 'https://rubygems.org'\ngem 'rails'" > Gemfile
25
+
26
+ ## Bundle to install rails:
27
+ RUN bundle install
28
+
29
+ ## Switch to the the work directory from container root:
30
+ WORKDIR ${APP_HOME}
31
+
32
+ ## Use Rails to generate a new app. We'll configure it later.
33
+ RUN bundle exec rails new . --skip-webpack-install --skip-bundle
34
+
35
+ ## Tell docker not to create a layer:
36
+ FROM scratch AS export-stage
37
+
38
+ ## Copy the generated files onto the host. Note that because we are in a
39
+ ## new container, we don't have access to the previous ${APP_HOME}
40
+ ## variable and so we must hard code it as our source:
41
+ COPY --from=builder /usr/src/app/ .
42
+
43
+
@@ -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,30 @@
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
+
14
+ COPY Gemfile* $APP_HOME
15
+ COPY lib/jumpstart $APP_HOME
16
+
17
+ ENV BUNDLE_PATH /gems
18
+ RUN bundle update --bundler
19
+
20
+ RUN bundle install
21
+ RUN yarn install --check-files
22
+
23
+ COPY . ./$APP_HOME
24
+ RUN bundle install
25
+
26
+
27
+ COPY ./hosts.example /etc/hosts
28
+
29
+
30
+ CMD ["bin/rails", "s", "-b", "0.0.0.0"]
@@ -0,0 +1,59 @@
1
+ version: '3'
2
+
3
+ services:
4
+
5
+ web:
6
+ build: .
7
+ depends_on:
8
+ - database
9
+ - redis
10
+ entrypoint: ./docker-entrypoint.sh
11
+ command: ["bin/rails", "s", "-b", "0.0.0.0"]
12
+
13
+ ports:
14
+ - "3000:3000"
15
+ - "4000:4000"
16
+ volumes:
17
+ - .:/usr/src/app
18
+ - gem_cache:/gems
19
+ env_file:
20
+ - .env/development/web
21
+ - .env/development/database
22
+ environment:
23
+ - WEBPACKER_DEV_SERVER_HOST=webpack_dev_server
24
+
25
+ webpack_dev_server:
26
+ build: .
27
+ command: ./bin/webpack-dev-server
28
+ ports:
29
+ - 3035:3035
30
+ volumes:
31
+ - .:/usr/src/app
32
+ - gem_cache:/gems
33
+ env_file:
34
+ - .env/development/database
35
+ - .env/development/web
36
+ environment:
37
+ - WEBPACKER_DEV_SERVER_HOST=0.0.0.0
38
+
39
+ redis:
40
+ image: redis
41
+
42
+ database:
43
+ image: postgres
44
+ env_file:
45
+ - .env/development/database
46
+ volumes:
47
+ - db_data:/var/lib/postgresql/data
48
+
49
+ system_tests:
50
+ image: selenium/standalone-chrome-debug
51
+ logging:
52
+ driver: none
53
+ ports:
54
+ - "35729:35729"
55
+ - "5900:5900"
56
+
57
+ volumes:
58
+ db_data:
59
+ gem_cache: