terra_boi 1.0.1 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e8f5413354a66c625ee26c8778773011b1119e1ca8c7907d5c35d3848f376c9a
4
- data.tar.gz: 73ffe12bcc566b1ba30077ae5cc228edc03a922d235ab3c785bd9fa9c94d1d26
3
+ metadata.gz: d35fd6f8f0c06796d8da9aaa2c0f7465f7727e5a1ea8e4d304f43d6d7b173a59
4
+ data.tar.gz: ab8e91ccee4625755ee0ecb2d90bc3eae26afc72cf949bebe193218fb9157c2f
5
5
  SHA512:
6
- metadata.gz: e9aeb3d92446bcc652784cc3f4c0cad93bf42bc2e23564844b24eaff946c23815bee419f0cbe19a3d355c606129d4f40f2c116d89d1ec15ca931df09b4497e0d
7
- data.tar.gz: 33d3a88b5034b673eeaca0a377fc19445188b2436f00f634cfa2c4780538c144c0e581294cbba8df0d2e34273649d8ab1aa75b7868c3d7e7fe9bd42db7b932be
6
+ metadata.gz: 2ccaf8b0d5421b09d6306126544f10789b0be2c91778cfd20217f0e2cc4b421296d1eefa7536174017231dbd639a1f28b2d728e420817d837e435fad2a763fae
7
+ data.tar.gz: 4c294c4d415b7625c5a5eeca12a0c10ac6b4658213e63f05ef06d335be32b55e4e5220f9d40edead4686068407c79b3caaf5470e073ff6fd9242e87ef55c33bc
@@ -1,29 +1,34 @@
1
1
  module TerraBoi
2
2
  module GeneratorHelpers
3
3
  # https://api.rubyonrails.org/classes/Rails/Generators/NamedBase.html#method-i-application_name
4
- def generate_application_name
4
+ def generate_application_name(separators: false)
5
5
  if defined?(Rails) && Rails.application
6
- Rails.application.class.name.split("::").first.underscore
7
- else
8
- "application"
9
- end
10
- end
6
+ app_name = Rails.application.class.name.split("::").first.underscore
7
+ unless separators
8
+ app_name = app_name.gsub('_', '')
9
+ end
11
10
 
12
- def generate_terraform_files(args)
13
- args[:env].each do |env|
14
- template(args[:template],
15
- "terraform_v2/#{env}/#{args[:file_path]}",
16
- {
17
- env: env,
18
- domain_name: (class_options && class_options[:domain_name]) || generate_application_name + '.com'
19
- }
20
- )
21
- end
22
- end
23
- end
11
+ app_name
12
+ else
13
+ "application"
14
+ end
15
+ end
16
+
17
+ def generate_terraform_files(args)
18
+ args[:env].each do |env|
19
+ template(args[:template],
20
+ "terraform_v2/#{env}/#{args[:file_path]}",
21
+ {
22
+ env: env,
23
+ domain_name: (class_options && class_options[:domain_name]) || generate_application_name + '.com'
24
+ }
25
+ )
26
+ end
27
+ end
28
+ end
24
29
  end
25
30
 
26
31
  class Rails::Generators::Base
27
- include TerraBoi::GeneratorHelpers
32
+ include TerraBoi::GeneratorHelpers
28
33
  end
29
-
34
+
@@ -15,11 +15,11 @@ module TerraBoi
15
15
 
16
16
  def init
17
17
  # defined in lib/generators/extensions
18
- self.application_name = generate_application_name
18
+ self.application_name = generate_application_name separators: false
19
19
  end
20
20
 
21
21
  def create_db_config_file
22
22
  template "db_config.erb", "config/database.yml"
23
23
  end
24
24
  end
25
- end
25
+ end
@@ -27,4 +27,4 @@ production:
27
27
  username: <%%= ENV["DB_USERNAME"] %>
28
28
  password: <%%= ENV["DB_PASSWORD"] %>
29
29
  host: <%%= ENV["DB_HOST"] %>
30
- pool: <%%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
30
+ pool: <%%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
@@ -20,7 +20,7 @@ variable "db_username" {}
20
20
  variable "db_password" {}
21
21
 
22
22
  module "db_and_s3" {
23
- source = "github.com/charliereese/terraform_modules//data?ref=v0.0.27"
23
+ source = "github.com/charliereese/terraform_modules//data?ref=v0.0.28"
24
24
 
25
25
  env = "<%= config[:env] %>"
26
26
  app_name = "<%= application_name %>"
@@ -28,4 +28,4 @@ module "db_and_s3" {
28
28
  db_encrypted = <%= config[:env] == 'prod' ? true : false %>
29
29
  db_username = var.db_username
30
30
  db_password = var.db_password
31
- }
31
+ }
@@ -12,7 +12,11 @@ aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --
12
12
 
13
13
  # Build your Docker image using the following command
14
14
  DOCKERFILE_PATH="$SCRIPT_DIR/../../../."
15
- docker build -t $AWS_ECR_REPO_NAME $DOCKERFILE_PATH
15
+ if ! docker build -t $AWS_ECR_REPO_NAME $DOCKERFILE_PATH; then
16
+ echo "TERRA_BOI | Command failed. Pruning Docker memory then retrying!"
17
+ echo "TERRA_BOI | Pruning may take a couple minutes..."
18
+ docker system prune -a && docker build -t $AWS_ECR_REPO_NAME $DOCKERFILE_PATH
19
+ fi
16
20
 
17
21
  # After the build completes, tag your image so you can push the image to this repository:
18
22
  docker tag $AWS_ECR_REPO_NAME:latest $AWS_ECR_REPO_URL:latest
@@ -3,8 +3,8 @@
3
3
  # ---------------------------------------------------------------------------------------------------------------------
4
4
 
5
5
  module "remote_state_locking" {
6
- source = "github.com/charliereese/terraform_modules//state?ref=v0.0.25"
6
+ source = "github.com/charliereese/terraform_modules//state?ref=v0.0.28"
7
7
 
8
- app_name = "<%= application_name %>"
9
- region = "us-east-2"
8
+ app_name = "<%= application_name %>"
9
+ region = "us-east-2"
10
10
  }
@@ -35,7 +35,7 @@ module TerraBoi
35
35
 
36
36
  def init
37
37
  # defined in lib/generators/extensions
38
- self.application_name = generate_application_name
38
+ self.application_name = generate_application_name separators: false
39
39
  self.class_options = options
40
40
  end
41
41
 
@@ -51,4 +51,4 @@ module TerraBoi
51
51
  end
52
52
  end
53
53
  end
54
- end
54
+ end
@@ -14,11 +14,11 @@ module TerraBoi
14
14
  )
15
15
 
16
16
  def init
17
- self.application_name = generate_application_name
17
+ self.application_name = generate_application_name separators: false
18
18
  end
19
19
 
20
20
  def create_main_terraform_file
21
21
  template "state_main.erb", "terraform/state/main.tf"
22
22
  end
23
23
  end
24
- end
24
+ end
@@ -155,13 +155,7 @@ end
155
155
 
156
156
  def push_container_to_ecr
157
157
  puts "\nTERRA_BOI | Building application docker container then pushing to ECR...\n".cyan.bold
158
- sh "./terraform/lib/scripts/push_to_ecr.sh" do |ok, res|
159
- if !ok
160
- puts "\nTERRA_BOI | Docker container build and push failed (status = #{res.exitstatus})".cyan.bold
161
- puts "\nTERRA_BOI | Pruning docker (to create more memory) and retrying...\n".cyan.bold
162
- sh "docker system prune -a && ./terraform/lib/scripts/push_to_ecr.sh"
163
- end
164
- end
158
+ sh "./terraform/lib/scripts/push_to_ecr.sh"
165
159
  end
166
160
 
167
161
  def apply_web_app_and_worker
@@ -1,3 +1,3 @@
1
1
  module TerraBoi
2
- VERSION = '1.0.1'
2
+ VERSION = '1.1.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: terra_boi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charlie Reese
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-04 00:00:00.000000000 Z
11
+ date: 2020-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -44,6 +44,20 @@ dependencies:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: pg
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
47
61
  description: |-
48
62
  Deploy your rails application to AWS with `rake deploy`.
49
63
 
@@ -124,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
138
  - !ruby/object:Gem::Version
125
139
  version: '0'
126
140
  requirements: []
127
- rubygems_version: 3.1.2
141
+ rubygems_version: 3.1.4
128
142
  signing_key:
129
143
  specification_version: 4
130
144
  summary: Deploy your rails application to AWS with `rake deploy`. terra_boi generates