roro 0.3.9 → 0.3.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/{lib/roro/cli/rollon/stories/rails → .circleci}/.keep +0 -0
- data/.circleci/config.yml +92 -0
- data/{lib/roro/cli/templates/ruby_gem → .circleci}/setup-gem-credentials.sh +1 -1
- data/.gitignore +2 -2
- data/Guardfile +7 -7
- data/docker-compose.yml +15 -0
- data/lib/roro.rb +1 -2
- 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/ruby_gem/with_ci_cd.rb +45 -0
- data/lib/roro/cli/rollon/stories.rb +2 -2
- data/lib/roro/cli/templates/base/.circleci/_defaults.yml +17 -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/.dockerignore +2 -2
- data/lib/roro/cli/templates/base/dotenv +1 -0
- data/lib/roro/cli/templates/base/{.keep → jumpstart/.keep} +0 -0
- data/lib/roro/cli/templates/{jumpstart → base/jumpstart}/Dockerfile.tt +0 -0
- data/lib/roro/cli/templates/{jumpstart → base/jumpstart}/docker-compose.yml +0 -0
- data/lib/roro/cli/templates/{jumpstart → base/jumpstart}/docker-entrypoint.sh +0 -0
- data/lib/roro/cli/templates/{livereload → base/livereload}/hosts.example +0 -0
- data/lib/roro/cli/templates/{jumpstart → base/roro}/.keep +0 -0
- data/lib/roro/cli/templates/{roro → base/roro/roro}/.keep +0 -0
- data/lib/roro/cli/templates/{roro/roro → base/roro/roro/containers}/.keep +0 -0
- data/lib/roro/cli/templates/{roro/roro/containers → base/roro/roro/containers/app}/.keep +0 -0
- data/lib/roro/cli/templates/{roro/roro/containers/app → base/roro/roro/containers/frontend}/.keep +0 -0
- data/lib/roro/cli/templates/{roro → base/roro}/roro/docker-entrypoint.sh.tt +0 -0
- data/lib/roro/cli/templates/{roro/roro/containers/frontend → 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 +13 -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 +13 -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/{rollon/stories/database.rb → templates/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/rails/database/with_mysql/_service.yml +10 -0
- data/lib/roro/cli/templates/rails/database/with_postgresql/.keep +0 -0
- data/lib/roro/cli/templates/rails/database/with_postgresql/_service.yml +7 -0
- data/lib/roro/cli/templates/{roro → rails}/docker-compose.yml.tt +7 -8
- data/lib/roro/cli/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 +16 -10
- data/lib/roro/cli/templates/rails/roro/containers/frontend/.keep +0 -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/ruby_gem/.circleci/.keep +0 -0
- data/lib/roro/cli/templates/ruby_gem/.circleci/config.yml.tt +16 -0
- data/lib/roro/cli/templates/ruby_gem/.circleci/setup-gem-credentials.sh +3 -0
- data/lib/roro/cli/templates/ruby_gem/docker-compose.yml +6 -2
- data/lib/roro/cli/templates/ruby_gem/roro/containers/ruby_image/Dockerfile.tt +7 -7
- data/lib/roro/cli/templates/ruby_gem/roro/containers/ruby_image/ci.env.tt +1 -0
- data/lib/roro/cli/templates/stories/ruby_gem/with_ci_cd/_build.yml +11 -0
- 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 +10 -11
- data/roro/containers/.keep +0 -0
- data/roro/containers/ruby_image/Dockerfile +16 -0
- data/roro/containers/ruby_image/ci.env.enc +2 -0
- data/roro/keys/.keep +0 -0
- data/tmp/.keep +0 -0
- metadata +132 -147
- 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/rollon/stories/ruby_gem/with_ci_cd.rb +0 -81
- data/lib/roro/cli/ruby_gem.rb +0 -67
- data/lib/roro/cli/templates/ruby_gem/.circleci/config.yml +0 -17
- data/lib/roro/cli/templates/ruby_gem/roro/ci.env.tt +0 -1
- 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/activesupport-6.0.3.2.gem +0 -0
- data/vendor/cache/addressable-2.7.0.gem +0 -0
- data/vendor/cache/builder-3.2.4.gem +0 -0
- data/vendor/cache/byebug-11.1.3.gem +0 -0
- data/vendor/cache/coderay-1.1.3.gem +0 -0
- data/vendor/cache/concurrent-ruby-1.1.7.gem +0 -0
- data/vendor/cache/crass-1.0.6.gem +0 -0
- data/vendor/cache/em-websocket-0.5.1.gem +0 -0
- data/vendor/cache/erubi-1.9.0.gem +0 -0
- data/vendor/cache/eventmachine-1.2.7.gem +0 -0
- data/vendor/cache/ffi-1.13.1.gem +0 -0
- data/vendor/cache/formatador-0.2.5.gem +0 -0
- data/vendor/cache/gem-release-2.1.1.gem +0 -0
- data/vendor/cache/given_core-3.8.0.gem +0 -0
- data/vendor/cache/guard-2.16.2.gem +0 -0
- data/vendor/cache/guard-compat-1.2.1.gem +0 -0
- data/vendor/cache/guard-livereload-2.5.2.gem +0 -0
- data/vendor/cache/guard-minitest-2.4.6.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/http_parser.rb-0.6.0.gem +0 -0
- data/vendor/cache/i18n-1.8.5.gem +0 -0
- data/vendor/cache/launchy-2.5.0.gem +0 -0
- data/vendor/cache/listen-3.2.1.gem +0 -0
- data/vendor/cache/loofah-2.6.0.gem +0 -0
- data/vendor/cache/lumberjack-1.2.7.gem +0 -0
- data/vendor/cache/method_source-1.0.0.gem +0 -0
- data/vendor/cache/mini_portile2-2.4.0.gem +0 -0
- data/vendor/cache/minitest-5.14.1.gem +0 -0
- data/vendor/cache/minitest-given-3.8.0.gem +0 -0
- data/vendor/cache/minitest-matchers_vaccine-1.0.4.gem +0 -0
- data/vendor/cache/minitest-rails-6.0.1.gem +0 -0
- data/vendor/cache/mocha-1.11.2.gem +0 -0
- data/vendor/cache/multi_json-1.15.0.gem +0 -0
- data/vendor/cache/nenv-0.3.0.gem +0 -0
- data/vendor/cache/net-scp-3.0.0.gem +0 -0
- data/vendor/cache/net-ssh-6.1.0.gem +0 -0
- data/vendor/cache/nokogiri-1.10.10.gem +0 -0
- data/vendor/cache/notiffany-0.1.3.gem +0 -0
- data/vendor/cache/os-1.0.0.gem +0 -0
- data/vendor/cache/pry-0.13.1.gem +0 -0
- data/vendor/cache/public_suffix-4.0.5.gem +0 -0
- data/vendor/cache/rack-2.2.3.gem +0 -0
- data/vendor/cache/rack-livereload-0.3.17.gem +0 -0
- data/vendor/cache/rack-test-1.1.0.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/rake-13.0.1.gem +0 -0
- data/vendor/cache/rb-fsevent-0.10.4.gem +0 -0
- data/vendor/cache/rb-inotify-0.10.1.gem +0 -0
- data/vendor/cache/shellany-0.0.1.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/vendor/cache/sorcerer-2.0.1.gem +0 -0
- data/vendor/cache/sshkit-1.18.2.gem +0 -0
- data/vendor/cache/thor-1.0.1.gem +0 -0
- data/vendor/cache/thread_safe-0.3.6.gem +0 -0
- data/vendor/cache/tzinfo-1.2.7.gem +0 -0
- data/vendor/cache/zeitwerk-2.4.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
|
@@ -1,81 +0,0 @@
|
|
1
|
-
module Roro
|
2
|
-
class CLI < Thor
|
3
|
-
|
4
|
-
desc "rollon::ruby_gem::with_ci_cd", "Generate files for containerized gem testing, CircleCI, and releasing to RubyGems."
|
5
|
-
method_option :rubies, type: :array, banner: "2.5.3 2.4.2"
|
6
|
-
map "rollon::ruby_gem::with_ci_cd" => "rollon_ruby_gem_with_ci_cd"
|
7
|
-
|
8
|
-
def rollon_ruby_gem_with_ci_cd(*args)
|
9
|
-
ruby_gem_with_ci_cd(*args)
|
10
|
-
end
|
11
|
-
|
12
|
-
no_commands do
|
13
|
-
def ruby_gem_with_ci_cd(*args)
|
14
|
-
configure_for_rollon
|
15
|
-
answer = ask("\nYou can add your rubygems api key in\n\t
|
16
|
-
'./roro/ci.env' \n\nlater, or we'll try to add it here:",
|
17
|
-
default: '')
|
18
|
-
rubygems_api_key = (answer.eql?("") ? 'some-key' : answer)
|
19
|
-
@config.app['rubygems_api_key'] = rubygems_api_key
|
20
|
-
@config.app['rubies'] = []
|
21
|
-
3.times do |index|
|
22
|
-
newruby = @config.app['ruby_version'].gsub('.', '').to_i - index
|
23
|
-
@config.app['rubies'] << newruby.to_s.split('').join('.')
|
24
|
-
end
|
25
|
-
directory 'ruby_gem/roro', './roro', @config.app
|
26
|
-
directory 'ruby_gem/.circleci', './.circleci', @config.app
|
27
|
-
copy_file 'ruby_gem/docker-compose.yml', './docker-compose.yml'
|
28
|
-
|
29
|
-
@config.app['rubies'].each do |ruby|
|
30
|
-
img_name = 'ruby_gem:' + ruby
|
31
|
-
file = '.circleci/config.yml'
|
32
|
-
|
33
|
-
run_build = "\n - run: RUBY_IMAGE=ruby:#{ruby}-alpine docker-compose build ruby_gem"
|
34
|
-
run_test = "\n - run: RUBY_IMAGE=ruby:#{ruby}-alpine docker-compose run ruby_gem rake test"
|
35
|
-
append_to_file file, run_build + run_test, after: 'gem install roro'
|
36
|
-
end
|
37
|
-
append_to_file ".gitignore", "\nGemfile.lock"
|
38
|
-
gitignore_sensitive_files
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
# # def ruby_gem
|
44
|
-
# # rubies = options["rubies"] || ["2.5.3", "2.6.0"]
|
45
|
-
# # copy_file 'ruby_gem/docker-compose.yml', 'docker-compose.yml'
|
46
|
-
# # copy_file 'ruby_gem/config.yml', '.circleci/config.yml'
|
47
|
-
# # copy_file 'ruby_gem/setup-gem-credentials.sh', '.circleci/setup-gem-credentials.sh'
|
48
|
-
# # directory 'ruby_gem/docker', 'docker', { ruby_version: "2.5"}
|
49
|
-
|
50
|
-
# # rubies.each do |ruby|
|
51
|
-
# # rubydash = ruby.gsub('.', '-')
|
52
|
-
# # rubyunderscore = ruby.gsub('.', '_')
|
53
|
-
# # doc_loc = "docker/containers/#{rubyunderscore}/Dockerfile"
|
54
|
-
# # content = <<-EOM
|
55
|
-
|
56
|
-
# # app-#{rubydash}:
|
57
|
-
# # build:
|
58
|
-
# # context: .
|
59
|
-
# # dockerfile: #{doc_loc}
|
60
|
-
# # command: rake test
|
61
|
-
# # EOM
|
62
|
-
# # append_to_file 'docker-compose.yml', content
|
63
|
-
# # template 'ruby_gem/docker/containers/app/Dockerfile.tt', doc_loc, {ruby_version: ruby}
|
64
|
-
# # # append_to_file 'docker-compose.yml', "\n app-#{ruby}:\n build:\n\s\s\s\s\s\scontext:"
|
65
|
-
# # end
|
66
|
-
|
67
|
-
# # # end
|
68
|
-
# # # <<EOF
|
69
|
-
# # # This is the first way of creating
|
70
|
-
# # # here document ie. multiple line string.
|
71
|
-
# # # EOF
|
72
|
-
# # # %w[app web].each do |container|
|
73
|
-
# # # options = {
|
74
|
-
# # # email: @env_hash['DOCKERHUB_EMAIL'],
|
75
|
-
# # # app_name: @env_hash['APP_NAME'] }
|
76
|
-
# # #
|
77
|
-
# # # template("docker/containers/#{container}/Dockerfile.tt", "docker/containers/#{container}/Dockerfile", options)
|
78
|
-
# # # end
|
79
|
-
# # end
|
80
|
-
# # end
|
81
|
-
# # 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
|
@@ -1,17 +0,0 @@
|
|
1
|
-
defaults: &defaults
|
2
|
-
working_directory: /tmp
|
3
|
-
|
4
|
-
version: 2
|
5
|
-
|
6
|
-
jobs:
|
7
|
-
|
8
|
-
build:
|
9
|
-
machine: true
|
10
|
-
steps:
|
11
|
-
- checkout
|
12
|
-
- run: gem install roro
|
13
|
-
- run: roro expose ci
|
14
|
-
- run: echo 'source roro/containers/gem/ci.env' >> $BASH_ENV
|
15
|
-
- run: setup_gem_credentials.sh
|
16
|
-
- run: gem install gem-release -k
|
17
|
-
- run: gem release
|
@@ -1 +0,0 @@
|
|
1
|
-
RUBYGEMS_API_KEY=<%= config['rubygems_api_key'] %>
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/vendor/cache/ffi-1.13.1.gem
DELETED
Binary file
|