roro 0.3.14 → 0.3.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +35 -10
  3. data/Guardfile +7 -7
  4. data/lib/roro.rb +1 -1
  5. data/lib/roro/cli.rb +12 -76
  6. data/lib/roro/cli/base/check_dependencies.rb +0 -1
  7. data/lib/roro/cli/base/utilities.rb +0 -1
  8. data/lib/roro/cli/generate/config.rb +6 -8
  9. data/lib/roro/cli/generate/exposed.rb +14 -0
  10. data/lib/roro/cli/generate/{generate_keys.rb → keys.rb} +22 -0
  11. data/lib/roro/cli/generate/obfuscated.rb +17 -0
  12. data/lib/roro/cli/greenfield/rails.rb +36 -0
  13. data/lib/roro/cli/rollon.rb +2 -66
  14. data/lib/roro/cli/rollon/rails.rb +47 -0
  15. data/lib/roro/cli/rollon/{stories/rails → rails}/database.rb +3 -6
  16. data/lib/roro/cli/rollon/{stories/rails → rails}/database/with_mysql.rb +2 -2
  17. data/lib/roro/cli/rollon/{stories/rails → rails}/database/with_postgresql.rb +2 -2
  18. data/lib/roro/cli/rollon/ruby_gem.rb +1 -0
  19. data/lib/roro/cli/rollon/{stories/ruby_gem → ruby_gem}/with_ci_cd.rb +1 -1
  20. data/lib/roro/cli/rollon/stories.rb +2 -2
  21. data/lib/roro/cli/templates/base/.circleci/_defaults.yml +15 -0
  22. data/lib/roro/cli/templates/base/.circleci/_workflow.yml +2 -0
  23. data/lib/roro/cli/templates/base/.circleci/config.job-example.yml +33 -0
  24. data/lib/roro/cli/templates/base/.circleci/jobs/_build.yml +4 -0
  25. data/lib/roro/cli/templates/base/.circleci/jobs/_release.yml +12 -0
  26. data/lib/roro/cli/templates/base/.circleci/workflows/_build_release.yml +10 -0
  27. data/lib/roro/cli/templates/base/dotenv +1 -0
  28. data/lib/roro/cli/{rollon/stories/rails → templates/rails/.circleci}/.keep +0 -0
  29. data/lib/roro/cli/templates/rails/.circleci/_aliases.yml +8 -0
  30. data/lib/roro/cli/templates/rails/.circleci/config.yml.tt +15 -0
  31. data/lib/roro/cli/templates/rails/.circleci/jobs/_build.yml +16 -0
  32. data/lib/roro/cli/templates/rails/.circleci/jobs/_push.yml +23 -0
  33. data/lib/roro/cli/templates/rails/.circleci/jobs/_test.yml +10 -0
  34. data/lib/roro/cli/templates/rails/.circleci/setup-gem-credentials.sh +3 -0
  35. data/lib/roro/cli/templates/rails/.circleci/workflows/_build_test_push.yml +9 -0
  36. data/lib/roro/cli/templates/{base → rails}/.keep +0 -0
  37. data/lib/roro/cli/templates/{greenfield/Dockerfile.tt → rails/Dockerfile.greenfield.tt} +11 -7
  38. data/lib/roro/cli/templates/{base → rails}/config/database.mysql.yml +0 -0
  39. data/lib/roro/cli/templates/{base → rails}/config/database.pg.yml +0 -0
  40. data/lib/roro/cli/templates/{stories/rails → rails}/database/with_mysql/_service.yml +0 -0
  41. data/lib/roro/cli/templates/{stories/rails → rails}/database/with_postgresql/.keep +0 -0
  42. data/lib/roro/cli/templates/{stories/rails → rails}/database/with_postgresql/_service.yml +0 -0
  43. data/lib/roro/cli/{rollon/stories/database.rb → templates/rails/dotenv/.keep} +0 -0
  44. data/lib/roro/cli/templates/rails/dotenv/database.mysql.env.tt +3 -0
  45. data/lib/roro/cli/templates/rails/dotenv/database.pg.env.tt +4 -0
  46. data/lib/roro/cli/templates/rails/dotenv/web.env.tt +2 -0
  47. data/lib/roro/cli/templates/rails/roro/.keep +0 -0
  48. data/lib/roro/cli/templates/rails/roro/containers/.keep +0 -0
  49. data/lib/roro/cli/templates/rails/roro/containers/app/.keep +0 -0
  50. data/lib/roro/cli/templates/{base → rails/roro/containers/app}/Dockerfile.tt +18 -9
  51. data/lib/roro/cli/templates/rails/roro/containers/frontend/.keep +0 -0
  52. data/lib/roro/cli/templates/rails/roro/docker-compose.yml.tt +59 -0
  53. data/lib/roro/cli/templates/rails/roro/docker-entrypoint.sh.tt +8 -0
  54. data/lib/roro/cli/templates/rails/roro/roro/.keep +0 -0
  55. data/lib/roro/cli/templates/rails/roro/roro/containers/.keep +0 -0
  56. data/lib/roro/cli/templates/rails/roro/roro/containers/app/.keep +0 -0
  57. data/lib/roro/cli/templates/rails/roro/roro/containers/frontend/.keep +0 -0
  58. data/lib/roro/cli/templates/rails/roro/roro/docker-entrypoint.sh.tt +8 -0
  59. data/lib/roro/cli/templates/roro/docker-compose.yml.tt +4 -4
  60. data/lib/roro/cli/templates/ruby_gem/.circleci/config.yml.tt +9 -33
  61. data/lib/roro/cli/templates/stories/with_mysql/_service.yml +2 -2
  62. data/lib/roro/cli/templates/stories/with_postgresql/_service.yml +2 -2
  63. data/lib/roro/version.rb +1 -1
  64. data/roro.gemspec +5 -5
  65. data/vendor/cache/apparition-0.6.0.gem +0 -0
  66. data/vendor/cache/capybara-3.33.0.gem +0 -0
  67. data/vendor/cache/childprocess-3.0.0.gem +0 -0
  68. data/vendor/cache/handsome_fencer-crypto-0.1.9.gem +0 -0
  69. data/vendor/cache/handsome_fencer-test-0.2.2.gem +0 -0
  70. data/vendor/cache/mini_mime-1.0.2.gem +0 -0
  71. data/vendor/cache/regexp_parser-1.7.1.gem +0 -0
  72. data/vendor/cache/rubyzip-2.3.0.gem +0 -0
  73. data/vendor/cache/selenium-webdriver-3.142.7.gem +0 -0
  74. data/vendor/cache/shoulda-2.11.3.gem +0 -0
  75. data/vendor/cache/shoulda-context-2.0.0.rc2.gem +0 -0
  76. data/vendor/cache/shoulda-matchers-4.4.1.gem +0 -0
  77. data/vendor/cache/websocket-driver-0.7.3.gem +0 -0
  78. data/vendor/cache/websocket-extensions-0.1.5.gem +0 -0
  79. data/vendor/cache/xpath-3.2.0.gem +0 -0
  80. metadata +94 -72
  81. data/lib/roro/cli/cli.rb +0 -99
  82. data/lib/roro/cli/expose.rb +0 -14
  83. data/lib/roro/cli/greenfield.rb +0 -31
  84. data/lib/roro/cli/obfuscate.rb +0 -19
  85. data/lib/roro/cli/rollon/stories/rails.rb +0 -1
  86. data/lib/roro/cli/rollon/stories/ruby_gem.rb +0 -77
  87. data/lib/roro/cli/ruby_gem.rb +0 -67
  88. data/vendor/cache/actionpack-6.0.3.2.gem +0 -0
  89. data/vendor/cache/actionview-6.0.3.2.gem +0 -0
  90. data/vendor/cache/builder-3.2.4.gem +0 -0
  91. data/vendor/cache/crass-1.0.6.gem +0 -0
  92. data/vendor/cache/erubi-1.9.0.gem +0 -0
  93. data/vendor/cache/handsome_fencer-crypto-0.1.6.gem +0 -0
  94. data/vendor/cache/handsome_fencer-test-0.1.1.gem +0 -0
  95. data/vendor/cache/loofah-2.6.0.gem +0 -0
  96. data/vendor/cache/minitest-rails-6.0.1.gem +0 -0
  97. data/vendor/cache/rails-dom-testing-2.0.3.gem +0 -0
  98. data/vendor/cache/rails-html-sanitizer-1.3.0.gem +0 -0
  99. data/vendor/cache/railties-6.0.3.2.gem +0 -0
  100. data/vendor/cache/shoulda-4.0.0.gem +0 -0
  101. data/vendor/cache/shoulda-context-2.0.0.gem +0 -0
  102. data/vendor/cache/shoulda-matchers-4.3.0.gem +0 -0
@@ -1,99 +0,0 @@
1
- require 'thor'
2
- require 'roro/cli/base/base'
3
- require 'roro/cli/rollon/stories'
4
- require 'roro/cli/rollon'
5
- require 'roro/cli/greenfield'
6
- require 'roro/cli/obfuscate'
7
- require 'roro/cli/expose'
8
- require 'roro/cli/ruby_gem'
9
- require 'roro/cli/generate/config/rails'
10
- require 'roro/cli/generate/config'
11
- require 'roro/cli/generate/generate_keys'
12
- require 'roro/cli/configuration'
13
-
14
- module Roro
15
-
16
- class CLI < Thor
17
-
18
- include Thor::Actions
19
-
20
- def self.source_root
21
- File.dirname(__FILE__) + '/cli/templates'
22
- end
23
-
24
- desc "rollon::ruby_gem", "Generate files for containerized gem testing, CircleCI, and releasing to RubyGems."
25
- method_option :rubies, type: :array, banner: "2.5.3 2.4.2"
26
- map "rollon::ruby_gem" => "rollon_ruby_gem"
27
-
28
- def rollon_ruby_gem(*args)
29
- ruby_gem(*args)
30
- end
31
-
32
- desc "rollon::rails", "Generates files for and makes changes to your app
33
- so it can run using Docker containers."
34
- method_option :interactive, desc: "Set up your environment variables as
35
- you go."
36
- map "rollon::rails" => "rollon_rails"
37
-
38
- def rollon_rails
39
- rollon
40
- end
41
-
42
-
43
- desc "greenfield::rails", "Greenfield a new, dockerized rails app with
44
- either MySQL or PostgreSQL in a separate container."
45
-
46
- method_option :env_vars, type: :hash, default: {}, desc: "Pass a list of environment variables like so: env:var", banner: "key1:value1 key2:value2"
47
- method_option :interactive, desc: "Set up your environment variables as you go."
48
- method_option :force, desc: "force over-write of existing files"
49
-
50
- map "greenfield::rails" => "greenfield_rails"
51
-
52
- def greenfield_rails(*args)
53
- greenfield(*args)
54
- end
55
- desc "generate::exposed", "Generate private .env files from
56
- encrypted .env.enc files inside the roro directory."
57
- map "generate::exposed" => "generate_exposed"
58
-
59
- def generate_exposed(*args)
60
- expose(*args)
61
- end
62
-
63
- desc "generate::key", "Generate a key inside roro/keys. Takes the name of
64
- an environment as an argument to private .env files from
65
- encrypted .env.enc files inside the roro directory.
66
- Expose encrypted files"
67
-
68
- map "generate::key" => "generate_key"
69
- method_option :environment, type: :hash, default: {}, desc: "Pass a list of environment variables like so: env:var", banner: "development, staging"
70
-
71
- def generate_key(*args)
72
- generate_key_or_keys(*args)
73
- end
74
-
75
- desc "generate::keys", "Generate keys for each environment inside roro/keys.
76
- If you have .env files like 'roro/containers/app/[staging_env].env' and
77
- 'roro/[circle_ci_env].env' it will generate '/roro/keys/[staging_env].key'
78
- and '/roro/keys/[circle_ci_env].key'."
79
- map "generate::keys" => "generate_keys"
80
-
81
- def generate_keys(*args)
82
- generate_key(*args)
83
- end
84
-
85
- desc "generate::config", "Generate a config file at .roro_config.yml"
86
- map "generate::config" => "generate_config"
87
-
88
- def generate_config
89
- create_file ".roro_config.yml", @config.app.to_yaml
90
- end
91
-
92
- desc "generate::obfuscated", "obfuscates any files matching the pattern ./roro/**/*.env"
93
- map "generate::obfuscated" => "generate_obfuscated"
94
-
95
- def generate_obfuscated(*args)
96
- obfuscate(*args)
97
- end
98
- end
99
- end
@@ -1,14 +0,0 @@
1
- module Roro
2
- class CLI < Thor
3
-
4
- no_commands do
5
-
6
- def expose(*args)
7
- environments = args.first ? [args.first] : gather_environments
8
- environments.each do |environment|
9
- HandsomeFencer::Crypto.expose(environment, 'roro')
10
- end
11
- end
12
- end
13
- end
14
- end
@@ -1,31 +0,0 @@
1
- module Roro
2
-
3
- class CLI < Thor
4
-
5
- no_commands do
6
-
7
- def greenfield
8
- confirm_directory_empty
9
- confirm_dependencies
10
- remove_roro_artifacts
11
- configure_for_greenfielding
12
- copy_greenfield_files
13
- run_greenfield_commands
14
- end
15
-
16
- def configure_for_greenfielding
17
- @config ||= Roro::Configuration.new(options)
18
- end
19
-
20
- def run_greenfield_commands
21
- system "DOCKER_BUILDKIT=1 docker build --file Dockerfile --output . ."
22
- rollon
23
- end
24
-
25
- def copy_greenfield_files
26
- template 'greenfield/Dockerfile.tt', 'Dockerfile', @config.app
27
- template 'roro/docker-compose.yml.tt', 'docker-compose.yml', @config.app
28
- end
29
- end
30
- end
31
- end
@@ -1,19 +0,0 @@
1
- require 'handsome_fencer/crypto'
2
-
3
- module Roro
4
-
5
- class CLI < Thor
6
-
7
- no_commands do
8
- include Thor::Actions
9
- include HandsomeFencer::Crypto
10
-
11
- def obfuscate(*args)
12
- environments = args.first ? [args.first] : gather_environments
13
- environments.each do |environment|
14
- HandsomeFencer::Crypto.obfuscate(environment, 'roro')
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1 +0,0 @@
1
- require 'roro/cli/rollon/stories/rails/database'
@@ -1,77 +0,0 @@
1
- require 'roro/cli/rollon/stories/ruby_gem/with_ci_cd.rb'
2
- # class RubyGem
3
- # attr_reader :getsome
4
-
5
- # def initialize
6
- # @getsome = 'getsome'
7
- # end
8
- # end
9
-
10
- # include Stories::RubyGem
11
- # module Rollon
12
- # module Story
13
-
14
- # end
15
- # end
16
- # class Rollon::Story::RubyGem < Roro::CLI
17
- # attr_reader :getsome
18
- # def initialize
19
- # @getsome = 'getsome'
20
- # end
21
- # end
22
-
23
- # # module Roro
24
-
25
- # # class CLI < Thor
26
-
27
-
28
- # # no_commands do
29
-
30
- # # def ruby_gem(*args)
31
-
32
-
33
- # # end
34
- # # def copy_ruby_gem_files
35
- # # copy_file 'ruby_gem/config.yml', '.circleci/config.yml'
36
- # # end
37
- # # end
38
-
39
- # # def ruby_gem
40
- # # rubies = options["rubies"] || ["2.5.3", "2.6.0"]
41
- # # copy_file 'ruby_gem/docker-compose.yml', 'docker-compose.yml'
42
- # # copy_file 'ruby_gem/config.yml', '.circleci/config.yml'
43
- # # copy_file 'ruby_gem/setup-gem-credentials.sh', '.circleci/setup-gem-credentials.sh'
44
- # # directory 'ruby_gem/docker', 'docker', { ruby_version: "2.5"}
45
-
46
- # # rubies.each do |ruby|
47
- # # rubydash = ruby.gsub('.', '-')
48
- # # rubyunderscore = ruby.gsub('.', '_')
49
- # # doc_loc = "docker/containers/#{rubyunderscore}/Dockerfile"
50
- # # content = <<-EOM
51
-
52
- # # app-#{rubydash}:
53
- # # build:
54
- # # context: .
55
- # # dockerfile: #{doc_loc}
56
- # # command: rake test
57
- # # EOM
58
- # # append_to_file 'docker-compose.yml', content
59
- # # template 'ruby_gem/docker/containers/app/Dockerfile.tt', doc_loc, {ruby_version: ruby}
60
- # # # append_to_file 'docker-compose.yml', "\n app-#{ruby}:\n build:\n\s\s\s\s\s\scontext:"
61
- # # end
62
-
63
- # # # end
64
- # # # <<EOF
65
- # # # This is the first way of creating
66
- # # # here document ie. multiple line string.
67
- # # # EOF
68
- # # # %w[app web].each do |container|
69
- # # # options = {
70
- # # # email: @env_hash['DOCKERHUB_EMAIL'],
71
- # # # app_name: @env_hash['APP_NAME'] }
72
- # # #
73
- # # # template("docker/containers/#{container}/Dockerfile.tt", "docker/containers/#{container}/Dockerfile", options)
74
- # # # end
75
- # # end
76
- # # end
77
- # # end
@@ -1,67 +0,0 @@
1
- # module Rollon
2
- # module Story
3
-
4
- # end
5
- # end
6
- # class Rollon::Story::RubyGem < Roro::CLI
7
- # attr_reader :getsome
8
- # def initialize
9
- # @getsome = 'getsome'
10
- # end
11
- # end
12
-
13
- # # module Roro
14
-
15
- # # class CLI < Thor
16
-
17
-
18
- # # no_commands do
19
-
20
- # # def ruby_gem(*args)
21
-
22
-
23
- # # end
24
- # # def copy_ruby_gem_files
25
- # # copy_file 'ruby_gem/config.yml', '.circleci/config.yml'
26
- # # end
27
- # # end
28
-
29
- # # def ruby_gem
30
- # # rubies = options["rubies"] || ["2.5.3", "2.6.0"]
31
- # # copy_file 'ruby_gem/docker-compose.yml', 'docker-compose.yml'
32
- # # copy_file 'ruby_gem/config.yml', '.circleci/config.yml'
33
- # # copy_file 'ruby_gem/setup-gem-credentials.sh', '.circleci/setup-gem-credentials.sh'
34
- # # directory 'ruby_gem/docker', 'docker', { ruby_version: "2.5"}
35
-
36
- # # rubies.each do |ruby|
37
- # # rubydash = ruby.gsub('.', '-')
38
- # # rubyunderscore = ruby.gsub('.', '_')
39
- # # doc_loc = "docker/containers/#{rubyunderscore}/Dockerfile"
40
- # # content = <<-EOM
41
-
42
- # # app-#{rubydash}:
43
- # # build:
44
- # # context: .
45
- # # dockerfile: #{doc_loc}
46
- # # command: rake test
47
- # # EOM
48
- # # append_to_file 'docker-compose.yml', content
49
- # # template 'ruby_gem/docker/containers/app/Dockerfile.tt', doc_loc, {ruby_version: ruby}
50
- # # # append_to_file 'docker-compose.yml', "\n app-#{ruby}:\n build:\n\s\s\s\s\s\scontext:"
51
- # # end
52
-
53
- # # # end
54
- # # # <<EOF
55
- # # # This is the first way of creating
56
- # # # here document ie. multiple line string.
57
- # # # EOF
58
- # # # %w[app web].each do |container|
59
- # # # options = {
60
- # # # email: @env_hash['DOCKERHUB_EMAIL'],
61
- # # # app_name: @env_hash['APP_NAME'] }
62
- # # #
63
- # # # template("docker/containers/#{container}/Dockerfile.tt", "docker/containers/#{container}/Dockerfile", options)
64
- # # # end
65
- # # end
66
- # # end
67
- # # end
Binary file
Binary file