roro 0.3.14 → 0.3.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +35 -10
- data/Guardfile +7 -7
- data/lib/roro.rb +1 -1
- data/lib/roro/cli.rb +12 -76
- data/lib/roro/cli/base/check_dependencies.rb +0 -1
- data/lib/roro/cli/base/utilities.rb +0 -1
- data/lib/roro/cli/generate/config.rb +6 -8
- data/lib/roro/cli/generate/exposed.rb +14 -0
- data/lib/roro/cli/generate/{generate_keys.rb → keys.rb} +22 -0
- data/lib/roro/cli/generate/obfuscated.rb +17 -0
- data/lib/roro/cli/greenfield/rails.rb +36 -0
- data/lib/roro/cli/rollon.rb +2 -66
- data/lib/roro/cli/rollon/rails.rb +47 -0
- data/lib/roro/cli/rollon/{stories/rails → rails}/database.rb +3 -6
- data/lib/roro/cli/rollon/{stories/rails → rails}/database/with_mysql.rb +2 -2
- data/lib/roro/cli/rollon/{stories/rails → rails}/database/with_postgresql.rb +2 -2
- data/lib/roro/cli/rollon/ruby_gem.rb +1 -0
- data/lib/roro/cli/rollon/{stories/ruby_gem → ruby_gem}/with_ci_cd.rb +1 -1
- data/lib/roro/cli/rollon/stories.rb +2 -2
- data/lib/roro/cli/templates/base/.circleci/_defaults.yml +15 -0
- data/lib/roro/cli/templates/base/.circleci/_workflow.yml +2 -0
- data/lib/roro/cli/templates/base/.circleci/config.job-example.yml +33 -0
- data/lib/roro/cli/templates/base/.circleci/jobs/_build.yml +4 -0
- data/lib/roro/cli/templates/base/.circleci/jobs/_release.yml +12 -0
- data/lib/roro/cli/templates/base/.circleci/workflows/_build_release.yml +10 -0
- data/lib/roro/cli/templates/base/dotenv +1 -0
- data/lib/roro/cli/{rollon/stories/rails → templates/rails/.circleci}/.keep +0 -0
- data/lib/roro/cli/templates/rails/.circleci/_aliases.yml +8 -0
- data/lib/roro/cli/templates/rails/.circleci/config.yml.tt +15 -0
- data/lib/roro/cli/templates/rails/.circleci/jobs/_build.yml +16 -0
- data/lib/roro/cli/templates/rails/.circleci/jobs/_push.yml +23 -0
- data/lib/roro/cli/templates/rails/.circleci/jobs/_test.yml +10 -0
- data/lib/roro/cli/templates/rails/.circleci/setup-gem-credentials.sh +3 -0
- data/lib/roro/cli/templates/rails/.circleci/workflows/_build_test_push.yml +9 -0
- data/lib/roro/cli/templates/{base → rails}/.keep +0 -0
- data/lib/roro/cli/templates/{greenfield/Dockerfile.tt → rails/Dockerfile.greenfield.tt} +11 -7
- data/lib/roro/cli/templates/{base → rails}/config/database.mysql.yml +0 -0
- data/lib/roro/cli/templates/{base → rails}/config/database.pg.yml +0 -0
- data/lib/roro/cli/templates/{stories/rails → rails}/database/with_mysql/_service.yml +0 -0
- data/lib/roro/cli/templates/{stories/rails → rails}/database/with_postgresql/.keep +0 -0
- data/lib/roro/cli/templates/{stories/rails → rails}/database/with_postgresql/_service.yml +0 -0
- data/lib/roro/cli/{rollon/stories/database.rb → templates/rails/dotenv/.keep} +0 -0
- data/lib/roro/cli/templates/rails/dotenv/database.mysql.env.tt +3 -0
- data/lib/roro/cli/templates/rails/dotenv/database.pg.env.tt +4 -0
- data/lib/roro/cli/templates/rails/dotenv/web.env.tt +2 -0
- data/lib/roro/cli/templates/rails/roro/.keep +0 -0
- data/lib/roro/cli/templates/rails/roro/containers/.keep +0 -0
- data/lib/roro/cli/templates/rails/roro/containers/app/.keep +0 -0
- data/lib/roro/cli/templates/{base → rails/roro/containers/app}/Dockerfile.tt +18 -9
- data/lib/roro/cli/templates/rails/roro/containers/frontend/.keep +0 -0
- data/lib/roro/cli/templates/rails/roro/docker-compose.yml.tt +59 -0
- data/lib/roro/cli/templates/rails/roro/docker-entrypoint.sh.tt +8 -0
- data/lib/roro/cli/templates/rails/roro/roro/.keep +0 -0
- data/lib/roro/cli/templates/rails/roro/roro/containers/.keep +0 -0
- data/lib/roro/cli/templates/rails/roro/roro/containers/app/.keep +0 -0
- data/lib/roro/cli/templates/rails/roro/roro/containers/frontend/.keep +0 -0
- data/lib/roro/cli/templates/rails/roro/roro/docker-entrypoint.sh.tt +8 -0
- data/lib/roro/cli/templates/roro/docker-compose.yml.tt +4 -4
- data/lib/roro/cli/templates/ruby_gem/.circleci/config.yml.tt +9 -33
- data/lib/roro/cli/templates/stories/with_mysql/_service.yml +2 -2
- data/lib/roro/cli/templates/stories/with_postgresql/_service.yml +2 -2
- data/lib/roro/version.rb +1 -1
- data/roro.gemspec +5 -5
- data/vendor/cache/apparition-0.6.0.gem +0 -0
- data/vendor/cache/capybara-3.33.0.gem +0 -0
- data/vendor/cache/childprocess-3.0.0.gem +0 -0
- data/vendor/cache/handsome_fencer-crypto-0.1.9.gem +0 -0
- data/vendor/cache/handsome_fencer-test-0.2.2.gem +0 -0
- data/vendor/cache/mini_mime-1.0.2.gem +0 -0
- data/vendor/cache/regexp_parser-1.7.1.gem +0 -0
- data/vendor/cache/rubyzip-2.3.0.gem +0 -0
- data/vendor/cache/selenium-webdriver-3.142.7.gem +0 -0
- data/vendor/cache/shoulda-2.11.3.gem +0 -0
- data/vendor/cache/shoulda-context-2.0.0.rc2.gem +0 -0
- data/vendor/cache/shoulda-matchers-4.4.1.gem +0 -0
- data/vendor/cache/websocket-driver-0.7.3.gem +0 -0
- data/vendor/cache/websocket-extensions-0.1.5.gem +0 -0
- data/vendor/cache/xpath-3.2.0.gem +0 -0
- metadata +94 -72
- data/lib/roro/cli/cli.rb +0 -99
- data/lib/roro/cli/expose.rb +0 -14
- data/lib/roro/cli/greenfield.rb +0 -31
- data/lib/roro/cli/obfuscate.rb +0 -19
- data/lib/roro/cli/rollon/stories/rails.rb +0 -1
- data/lib/roro/cli/rollon/stories/ruby_gem.rb +0 -77
- data/lib/roro/cli/ruby_gem.rb +0 -67
- data/vendor/cache/actionpack-6.0.3.2.gem +0 -0
- data/vendor/cache/actionview-6.0.3.2.gem +0 -0
- data/vendor/cache/builder-3.2.4.gem +0 -0
- data/vendor/cache/crass-1.0.6.gem +0 -0
- data/vendor/cache/erubi-1.9.0.gem +0 -0
- data/vendor/cache/handsome_fencer-crypto-0.1.6.gem +0 -0
- data/vendor/cache/handsome_fencer-test-0.1.1.gem +0 -0
- data/vendor/cache/loofah-2.6.0.gem +0 -0
- data/vendor/cache/minitest-rails-6.0.1.gem +0 -0
- data/vendor/cache/rails-dom-testing-2.0.3.gem +0 -0
- data/vendor/cache/rails-html-sanitizer-1.3.0.gem +0 -0
- data/vendor/cache/railties-6.0.3.2.gem +0 -0
- data/vendor/cache/shoulda-4.0.0.gem +0 -0
- data/vendor/cache/shoulda-context-2.0.0.gem +0 -0
- data/vendor/cache/shoulda-matchers-4.3.0.gem +0 -0
data/lib/roro/cli/cli.rb
DELETED
@@ -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
|
data/lib/roro/cli/expose.rb
DELETED
@@ -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
|
data/lib/roro/cli/greenfield.rb
DELETED
@@ -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
|
data/lib/roro/cli/obfuscate.rb
DELETED
@@ -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
|
data/lib/roro/cli/ruby_gem.rb
DELETED
@@ -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
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|