roro 0.3.8 → 0.3.16

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 (126) hide show
  1. checksums.yaml +5 -5
  2. data/{lib/roro/cli/templates/base → .circleci}/.keep +0 -0
  3. data/.circleci/config.yml +92 -0
  4. data/{lib/roro/cli/templates/ruby_gem → .circleci}/setup-gem-credentials.sh +1 -1
  5. data/.gitignore +2 -2
  6. data/Guardfile +7 -7
  7. data/docker-compose.yml +15 -0
  8. data/lib/roro.rb +1 -2
  9. data/lib/roro/cli.rb +12 -76
  10. data/lib/roro/cli/base/check_dependencies.rb +0 -1
  11. data/lib/roro/cli/base/utilities.rb +0 -1
  12. data/lib/roro/cli/generate/config.rb +6 -8
  13. data/lib/roro/cli/generate/exposed.rb +14 -0
  14. data/lib/roro/cli/generate/{generate_keys.rb → keys.rb} +22 -0
  15. data/lib/roro/cli/generate/obfuscated.rb +17 -0
  16. data/lib/roro/cli/greenfield/rails.rb +36 -0
  17. data/lib/roro/cli/rollon.rb +2 -66
  18. data/lib/roro/cli/rollon/rails.rb +47 -0
  19. data/lib/roro/cli/rollon/{stories/rails/database → rails}/database.rb +3 -4
  20. data/lib/roro/cli/rollon/{stories/rails → rails}/database/with_mysql.rb +2 -2
  21. data/lib/roro/cli/rollon/{stories/rails/database/with_postgres.rb → rails/database/with_postgresql.rb} +2 -2
  22. data/lib/roro/cli/rollon/ruby_gem.rb +1 -0
  23. data/lib/roro/cli/rollon/ruby_gem/with_ci_cd.rb +45 -0
  24. data/lib/roro/cli/rollon/stories.rb +2 -3
  25. data/lib/roro/cli/rollon/stories/stories.rb +0 -4
  26. data/lib/roro/cli/templates/base/.circleci/_defaults.yml +15 -0
  27. data/lib/roro/cli/templates/base/.circleci/_workflow.yml +2 -0
  28. data/lib/roro/cli/templates/base/.circleci/config.job-example.yml +33 -0
  29. data/lib/roro/cli/templates/base/.circleci/jobs/_build.yml +4 -0
  30. data/lib/roro/cli/templates/base/.circleci/jobs/_release.yml +12 -0
  31. data/lib/roro/cli/templates/base/.circleci/workflows/_build_release.yml +10 -0
  32. data/lib/roro/cli/templates/base/.dockerignore +2 -2
  33. data/lib/roro/cli/templates/base/dotenv +1 -0
  34. data/lib/roro/cli/templates/{dockerize → rails/.circleci}/.keep +0 -0
  35. data/lib/roro/cli/templates/rails/.circleci/_aliases.yml +8 -0
  36. data/lib/roro/cli/templates/rails/.circleci/config.yml.tt +15 -0
  37. data/lib/roro/cli/templates/rails/.circleci/jobs/_build.yml +16 -0
  38. data/lib/roro/cli/templates/rails/.circleci/jobs/_push.yml +23 -0
  39. data/lib/roro/cli/templates/rails/.circleci/jobs/_test.yml +10 -0
  40. data/lib/roro/cli/templates/rails/.circleci/setup-gem-credentials.sh +3 -0
  41. data/lib/roro/cli/templates/rails/.circleci/workflows/_build_test_push.yml +9 -0
  42. data/lib/roro/cli/templates/{ruby_gem/roro/env_files → rails}/.keep +0 -0
  43. data/lib/roro/cli/templates/{greenfield/Dockerfile.tt → rails/Dockerfile.greenfield.tt} +11 -7
  44. data/lib/roro/cli/templates/{base → rails}/config/database.mysql.yml +0 -0
  45. data/lib/roro/cli/templates/{base → rails}/config/database.pg.yml +0 -0
  46. data/lib/roro/cli/templates/rails/database/with_mysql/_service.yml +10 -0
  47. data/lib/roro/cli/{rollon/stories/database.rb → templates/rails/database/with_postgresql/.keep} +0 -0
  48. data/lib/roro/cli/templates/rails/database/with_postgresql/_service.yml +7 -0
  49. data/lib/roro/cli/templates/rails/dotenv/.keep +0 -0
  50. data/lib/roro/cli/templates/rails/dotenv/database.mysql.env.tt +3 -0
  51. data/lib/roro/cli/templates/rails/dotenv/database.pg.env.tt +4 -0
  52. data/lib/roro/cli/templates/rails/dotenv/web.env.tt +2 -0
  53. data/lib/roro/cli/templates/rails/roro/.keep +0 -0
  54. data/lib/roro/cli/templates/rails/roro/containers/.keep +0 -0
  55. data/lib/roro/cli/templates/rails/roro/containers/app/.keep +0 -0
  56. data/lib/roro/cli/templates/{base → rails/roro/containers/app}/Dockerfile.tt +18 -9
  57. data/lib/roro/cli/templates/rails/roro/containers/frontend/.keep +0 -0
  58. data/lib/roro/cli/templates/{dockerize → rails/roro}/docker-compose.yml.tt +15 -16
  59. data/lib/roro/cli/templates/rails/roro/docker-entrypoint.sh.tt +8 -0
  60. data/lib/roro/cli/templates/rails/roro/roro/.keep +0 -0
  61. data/lib/roro/cli/templates/rails/roro/roro/containers/.keep +0 -0
  62. data/lib/roro/cli/templates/rails/roro/roro/containers/app/.keep +0 -0
  63. data/lib/roro/cli/templates/rails/roro/roro/containers/frontend/.keep +0 -0
  64. data/lib/roro/cli/templates/rails/roro/roro/docker-entrypoint.sh.tt +8 -0
  65. data/lib/roro/cli/templates/roro/docker-compose.yml.tt +6 -7
  66. data/lib/roro/cli/templates/ruby_gem/.circleci/.keep +0 -0
  67. data/lib/roro/cli/templates/ruby_gem/.circleci/config.yml.tt +16 -0
  68. data/lib/roro/cli/templates/ruby_gem/.circleci/setup-gem-credentials.sh +3 -0
  69. data/lib/roro/cli/templates/ruby_gem/docker-compose.yml +8 -2
  70. data/lib/roro/cli/templates/ruby_gem/roro/containers/.keep +0 -0
  71. data/lib/roro/cli/templates/ruby_gem/roro/containers/ruby_image/Dockerfile.tt +16 -0
  72. data/lib/roro/cli/templates/ruby_gem/roro/containers/ruby_image/ci.env.tt +1 -0
  73. data/lib/roro/cli/templates/stories/ruby_gem/with_ci_cd/_build.yml +11 -0
  74. data/lib/roro/cli/templates/stories/with_mysql/_service.yml +2 -2
  75. data/lib/roro/cli/templates/stories/with_postgresql/_service.yml +2 -2
  76. data/lib/roro/version.rb +1 -1
  77. data/roro.gemspec +5 -5
  78. data/roro/containers/.keep +0 -0
  79. data/roro/containers/ruby_image/Dockerfile +16 -0
  80. data/roro/containers/ruby_image/ci.env.enc +2 -0
  81. data/roro/keys/.keep +0 -0
  82. data/tmp/.keep +0 -0
  83. data/vendor/cache/apparition-0.6.0.gem +0 -0
  84. data/vendor/cache/capybara-3.33.0.gem +0 -0
  85. data/vendor/cache/childprocess-3.0.0.gem +0 -0
  86. data/vendor/cache/handsome_fencer-crypto-0.1.9.gem +0 -0
  87. data/vendor/cache/handsome_fencer-test-0.2.2.gem +0 -0
  88. data/vendor/cache/mini_mime-1.0.2.gem +0 -0
  89. data/vendor/cache/regexp_parser-1.7.1.gem +0 -0
  90. data/vendor/cache/rubyzip-2.3.0.gem +0 -0
  91. data/vendor/cache/selenium-webdriver-3.142.7.gem +0 -0
  92. data/vendor/cache/shoulda-2.11.3.gem +0 -0
  93. data/vendor/cache/shoulda-context-2.0.0.rc2.gem +0 -0
  94. data/vendor/cache/shoulda-matchers-4.4.1.gem +0 -0
  95. data/vendor/cache/websocket-driver-0.7.3.gem +0 -0
  96. data/vendor/cache/websocket-extensions-0.1.5.gem +0 -0
  97. data/vendor/cache/xpath-3.2.0.gem +0 -0
  98. metadata +112 -82
  99. data/lib/roro/cli/cli.rb +0 -99
  100. data/lib/roro/cli/expose.rb +0 -14
  101. data/lib/roro/cli/greenfield.rb +0 -31
  102. data/lib/roro/cli/obfuscate.rb +0 -19
  103. data/lib/roro/cli/rollon/stories/rails.rb +0 -1
  104. data/lib/roro/cli/rollon/stories/ruby_gem.rb +0 -77
  105. data/lib/roro/cli/rollon/stories/ruby_gem/with_ci_cd.rb +0 -60
  106. data/lib/roro/cli/ruby_gem.rb +0 -67
  107. data/lib/roro/cli/templates/circleci/config.yml.tt +0 -70
  108. data/lib/roro/cli/templates/dockerize/Dockerfile.tt +0 -23
  109. data/lib/roro/cli/templates/dockerize/docker-entrypoint.sh +0 -9
  110. data/lib/roro/cli/templates/ruby_gem/.circleci/config.yml +0 -122
  111. data/lib/roro/cli/templates/ruby_gem/roro/containers/gem/Dockerfile.tt +0 -9
  112. data/vendor/cache/actionpack-6.0.3.2.gem +0 -0
  113. data/vendor/cache/actionview-6.0.3.2.gem +0 -0
  114. data/vendor/cache/builder-3.2.4.gem +0 -0
  115. data/vendor/cache/crass-1.0.6.gem +0 -0
  116. data/vendor/cache/erubi-1.9.0.gem +0 -0
  117. data/vendor/cache/handsome_fencer-crypto-0.1.6.gem +0 -0
  118. data/vendor/cache/handsome_fencer-test-0.1.1.gem +0 -0
  119. data/vendor/cache/loofah-2.6.0.gem +0 -0
  120. data/vendor/cache/minitest-rails-6.0.1.gem +0 -0
  121. data/vendor/cache/rails-dom-testing-2.0.3.gem +0 -0
  122. data/vendor/cache/rails-html-sanitizer-1.3.0.gem +0 -0
  123. data/vendor/cache/railties-6.0.3.2.gem +0 -0
  124. data/vendor/cache/shoulda-4.0.0.gem +0 -0
  125. data/vendor/cache/shoulda-context-2.0.0.gem +0 -0
  126. 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/ruby_gem/with_ci_cd.rb'
@@ -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,60 +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
- directory 'ruby_gem', './', @config.app
16
- gitignore_sensitive_files
17
- append_to_file ".gitignore", "Gemfile.lock\n"
18
- end
19
- end
20
- end
21
- end
22
- # # def ruby_gem
23
- # # rubies = options["rubies"] || ["2.5.3", "2.6.0"]
24
- # # copy_file 'ruby_gem/docker-compose.yml', 'docker-compose.yml'
25
- # # copy_file 'ruby_gem/config.yml', '.circleci/config.yml'
26
- # # copy_file 'ruby_gem/setup-gem-credentials.sh', '.circleci/setup-gem-credentials.sh'
27
- # # directory 'ruby_gem/docker', 'docker', { ruby_version: "2.5"}
28
-
29
- # # rubies.each do |ruby|
30
- # # rubydash = ruby.gsub('.', '-')
31
- # # rubyunderscore = ruby.gsub('.', '_')
32
- # # doc_loc = "docker/containers/#{rubyunderscore}/Dockerfile"
33
- # # content = <<-EOM
34
-
35
- # # app-#{rubydash}:
36
- # # build:
37
- # # context: .
38
- # # dockerfile: #{doc_loc}
39
- # # command: rake test
40
- # # EOM
41
- # # append_to_file 'docker-compose.yml', content
42
- # # template 'ruby_gem/docker/containers/app/Dockerfile.tt', doc_loc, {ruby_version: ruby}
43
- # # # append_to_file 'docker-compose.yml', "\n app-#{ruby}:\n build:\n\s\s\s\s\s\scontext:"
44
- # # end
45
-
46
- # # # end
47
- # # # <<EOF
48
- # # # This is the first way of creating
49
- # # # here document ie. multiple line string.
50
- # # # EOF
51
- # # # %w[app web].each do |container|
52
- # # # options = {
53
- # # # email: @env_hash['DOCKERHUB_EMAIL'],
54
- # # # app_name: @env_hash['APP_NAME'] }
55
- # # #
56
- # # # template("docker/containers/#{container}/Dockerfile.tt", "docker/containers/#{container}/Dockerfile", options)
57
- # # # end
58
- # # end
59
- # # end
60
- # # 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
@@ -1,70 +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 handsome_fencer-circle_c_i
13
- - run: handsome_fencer-circle_c_i expose circleci
14
- - run: handsome_fencer-circle_c_i expose development
15
- - run: echo 'source docker/env_files/circleci.env' >> $BASH_ENV
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
-
20
- push:
21
- machine: true
22
- steps:
23
- - checkout
24
- - run: gem install handsome_fencer-circle_c_i
25
- - run: handsome_fencer-circle_c_i expose circleci
26
- - run: handsome_fencer-circle_c_i expose development
27
- - run: echo 'source docker/env_files/circleci.env' >> $BASH_ENV
28
- - run: docker-compose build <%= config[:app_name] %> web
29
- - run: docker login -u $DOCKERHUB_USER -p $DOCKERHUB_PASS
30
- - run: docker login -u $DOCKERHUB_USER -p $DOCKERHUB_PASS
31
- - run:
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
34
- - run:
35
- name: Tag web image
36
- command: docker tag $(docker images | grep project_web | awk '{ print $3 }') ${DOCKERHUB_ORG_NAME}/${APP_NAME}_web:$DEPLOY_TAG
37
-
38
-
39
- - run: docker push ${DOCKERHUB_ORG_NAME}/${APP_NAME}_app:$DEPLOY_TAG
40
- - run: docker push ${DOCKERHUB_ORG_NAME}/${APP_NAME}_web:$DEPLOY_TAG
41
-
42
- deploy:
43
- machine: true
44
- steps:
45
- - checkout
46
- - add_ssh_keys
47
- - run: gem install handsome_fencer-circle_c_i
48
- - run: handsome_fencer-circle_c_i expose circleci
49
- - run: handsome_fencer-circle_c_i expose development
50
- - run: echo 'source docker/env_files/circleci.env' >> $BASH_ENV
51
-
52
- - run: rake --rakefile .circleci/Rakefile
53
-
54
- workflows:
55
- version: 2
56
- build-and-deploy:
57
- jobs:
58
- - build
59
- - push:
60
- requires:
61
- - build
62
- filters:
63
- branches:
64
- only: master
65
- - deploy:
66
- requires:
67
- - push
68
- filters:
69
- branches:
70
- only: master