jets 2.3.19 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitmodules +0 -3
- data/.python-version +1 -1
- data/.ruby-version +1 -1
- data/CHANGELOG.md +28 -2
- data/README.md +2 -2
- data/backers.md +1 -0
- data/jets.gemspec +11 -10
- data/lib/jets.rb +9 -13
- data/lib/jets/application.rb +9 -2
- data/lib/jets/application/defaults.rb +17 -15
- data/lib/jets/autoloaders.rb +15 -1
- data/lib/jets/booter.rb +3 -3
- data/lib/jets/builders/code_builder.rb +16 -15
- data/lib/jets/builders/gem_replacer.rb +3 -16
- data/lib/jets/builders/lambda_layer.rb +4 -5
- data/lib/jets/builders/ruby_packager.rb +18 -42
- data/lib/jets/builders/tidy.rb +1 -2
- data/lib/jets/bundle.rb +6 -0
- data/lib/jets/cfn/builders/api_gateway_builder.rb +61 -7
- data/lib/jets/cfn/ship.rb +2 -1
- data/lib/jets/cli.rb +6 -1
- data/lib/jets/commands/base.rb +1 -1
- data/lib/jets/commands/call.rb +14 -1
- data/lib/jets/commands/clean.rb +1 -1
- data/lib/jets/commands/clean/base.rb +1 -1
- data/lib/jets/commands/configure.rb +51 -0
- data/lib/jets/commands/delete.rb +2 -2
- data/lib/jets/commands/gems.rb +2 -10
- data/lib/jets/commands/help/call.md +8 -0
- data/lib/jets/commands/help/gems/check.md +3 -5
- data/lib/jets/commands/main.rb +9 -1
- data/lib/jets/commands/new.rb +9 -1
- data/lib/jets/commands/sequence.rb +6 -0
- data/lib/jets/commands/templates/skeleton/Gemfile.tt +1 -1
- data/lib/jets/commands/templates/skeleton/config/application.rb.tt +1 -1
- data/lib/jets/commands/templates/skeleton/public/index.html.tt +1 -1
- data/lib/jets/commands/url.rb +1 -0
- data/lib/jets/controller/base.rb +14 -4
- data/lib/jets/controller/middleware/main.rb +2 -1
- data/lib/jets/controller/params.rb +26 -4
- data/lib/jets/controller/rack/env.rb +18 -1
- data/lib/jets/controller/rendering.rb +5 -2
- data/lib/jets/controller/rendering/rack_renderer.rb +7 -1
- data/lib/jets/core.rb +12 -4
- data/lib/jets/dotenv/ssm.rb +18 -4
- data/lib/jets/generator.rb +2 -3
- data/lib/jets/internal/app/functions/jets/base_path.rb +10 -149
- data/lib/jets/internal/app/functions/jets/base_path_mapping.rb +81 -0
- data/lib/jets/internal/app/shared/functions/jets/s3_bucket_config.rb +14 -24
- data/lib/jets/resource/api_gateway/base_path/function.rb +6 -1
- data/lib/jets/resource/api_gateway/deployment.rb +2 -0
- data/lib/jets/resource/api_gateway/rest_api/logical_id.rb +34 -0
- data/lib/jets/resource/api_gateway/rest_api/logical_id/message.rb +49 -0
- data/lib/jets/resource/child_stack/api_deployment.rb +2 -0
- data/lib/jets/resource/lambda/function.rb +1 -1
- data/lib/jets/router/dsl.rb +7 -1
- data/lib/jets/router/method_creator/code.rb +1 -1
- data/lib/jets/router/scope.rb +7 -3
- data/lib/jets/spec_helpers/controllers.rb +10 -3
- data/lib/jets/spec_helpers/controllers/request.rb +12 -5
- data/lib/jets/stack/main/dsl/lambda.rb +1 -1
- data/lib/jets/turbo.rb +1 -0
- data/lib/jets/version.rb +1 -1
- metadata +51 -58
- data/vendor/cfn-status/CHANGELOG.md +0 -14
- data/vendor/cfn-status/Gemfile +0 -4
- data/vendor/cfn-status/LICENSE.txt +0 -21
- data/vendor/cfn-status/README.md +0 -56
- data/vendor/cfn-status/Rakefile +0 -6
- data/vendor/cfn-status/bin/console +0 -14
- data/vendor/cfn-status/bin/setup +0 -8
- data/vendor/cfn-status/cfn-status.gemspec +0 -30
- data/vendor/cfn-status/lib/cfn-status.rb +0 -1
- data/vendor/cfn-status/lib/cfn_status.rb +0 -245
- data/vendor/cfn-status/lib/cfn_status/aws_service.rb +0 -51
- data/vendor/cfn-status/lib/cfn_status/version.rb +0 -3
- data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-1.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-2.json +0 -1104
- data/vendor/cfn-status/spec/fixtures/cfn/pages/fresh/describe_stack_events-3.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-1.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-2.json +0 -1104
- data/vendor/cfn-status/spec/fixtures/cfn/pages/updating/describe_stack_events-3.json +0 -1103
- data/vendor/cfn-status/spec/fixtures/cfn/stack-events-complete.json +0 -1080
- data/vendor/cfn-status/spec/fixtures/cfn/stack-events-in-progress.json +0 -1080
- data/vendor/cfn-status/spec/fixtures/cfn/stack-events-update-rollback-complete.json +0 -1086
- data/vendor/cfn-status/spec/lib/cfn_status_spec.rb +0 -153
- data/vendor/cfn-status/spec/spec_helper.rb +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 64340de503207710a82a13ca132501a65e030dd295edf2aff5fec1499c6e4d43
|
4
|
+
data.tar.gz: 615dea597ff7fefafb59352aa3a68ef0c0b4b1338c7c9df1c36121e54c68fb7f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 208dc2bbe537c0b99bd09927185d8e75dee87a76dc1320b6755e2e53136a85c66940ff3e6f0c74d5e806d3d49b49125d351ec27d8ceb7207d17b55cb593c1cbe
|
7
|
+
data.tar.gz: 8e2f0b5ea3c84f907cc72e4eae4779da20d31d11affe6987ad55d2e92861b320104deeec00aefe5121bf5043f73b5ab2c3e5653b86297faaac00b88181651157
|
data/.gitmodules
CHANGED
data/.python-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
1
|
+
3.8.6
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.7.2
|
data/CHANGELOG.md
CHANGED
@@ -3,8 +3,34 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
This project *loosely tries* to adhere to [Semantic Versioning](http://semver.org/).
|
5
5
|
|
6
|
-
## [
|
7
|
-
|
6
|
+
## [3.0.0]
|
7
|
+
* #328 i18n docs
|
8
|
+
* #391 Deploy Option: Auto Replace API Gateway
|
9
|
+
* #444 Ruby 2.7 Support
|
10
|
+
* #453 Update to Bootstrap4 official release
|
11
|
+
* #454 When the controller name is singular, the behavior of searching for the View file is different from expected.
|
12
|
+
* #457 Breaking change: Harden IAM policy and do allow list all buckets by default. Breaking change.
|
13
|
+
* #479 Create request completion log method
|
14
|
+
* #487 API Gateway Base Path
|
15
|
+
* #488 Add retry_limit and read_timeout options
|
16
|
+
* #491 Fix queryStringParameters handling for nested value in spec_helper
|
17
|
+
* #492 Add params keyword case with get method for spec helpers test
|
18
|
+
* #494 Update ruby_packager.rb
|
19
|
+
* #496 Add unicode test for spec_helpers test
|
20
|
+
* #499 default_iam_policy does not correctly include VPC related actions on resource creation
|
21
|
+
* Improve autoloader: Shouldnt have to to call `bundle exec` in front of jets anymore.
|
22
|
+
* `jets configure` command
|
23
|
+
* Big improvements to docs site, add search
|
24
|
+
* Use serverlessgems API
|
25
|
+
* Breaking: use do not pluralize controller names for views folder
|
26
|
+
* Shorten SSM secrets notation support
|
27
|
+
* Remove deprecations and warnings: bundle install, generate scaffold, webpacker, yarn license, etc
|
28
|
+
* Also setting the `config.iam_policy` appends to the default policy now.
|
29
|
+
* Upgrade to Rails 6.1 components
|
30
|
+
* Increase cloudformation output limit to 200
|
31
|
+
* Replace `--sure` with `-y` option
|
32
|
+
* Fix params helper in views
|
33
|
+
* Webpacker upgrade
|
8
34
|
|
9
35
|
## [2.3.18]
|
10
36
|
- #514 Allow to define route that contains dot
|
data/README.md
CHANGED
@@ -5,10 +5,10 @@
|
|
5
5
|
Ruby and Lambda splat out a baby and that child's name is [Jets](http://rubyonjets.com/).
|
6
6
|
|
7
7
|
![Build Status](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiZ08vK2hjOHczQUVoUDhSYnBNNUU4T0gxQWJuOTlLaXpwVGQ1NjJ3NnVDY1dSdFVXQ3d2VXVSQzRFcU1qd1JPMndFZlByRktIcTUrZm5GWlM5dHpjM1ZrPSIsIml2UGFyYW1ldGVyU3BlYyI6Imluc1Qrd25GanhUdHlidjUiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=master)
|
8
|
-
[![CircleCI](https://circleci.com/gh/
|
8
|
+
[![CircleCI](https://circleci.com/gh/boltops-tools/jets.svg?style=svg)](https://circleci.com/gh/boltops-tools/jets)
|
9
9
|
[![Gem Version](https://badge.fury.io/rb/jets.svg)](https://badge.fury.io/rb/jets)
|
10
10
|
[![Support](https://img.shields.io/badge/Support-Help-blue.svg)](http://rubyonjets.com/support/)
|
11
|
-
[![Gitter Chat](https://badges.gitter.im/
|
11
|
+
[![Gitter Chat](https://badges.gitter.im/boltops-tools/jets.png)](https://gitter.im/boltops-tools/jets)
|
12
12
|
|
13
13
|
[![BoltOps Badge](https://img.boltops.com/boltops/badges/boltops-badge.png)](https://www.boltops.com)
|
14
14
|
|
data/backers.md
CHANGED
data/jets.gemspec
CHANGED
@@ -27,11 +27,11 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
28
28
|
spec.require_paths = ["lib"]
|
29
29
|
|
30
|
-
spec.add_dependency "actionmailer", "~> 6.
|
31
|
-
spec.add_dependency "actionpack", "~> 6.
|
32
|
-
spec.add_dependency "actionview", "~> 6.
|
33
|
-
spec.add_dependency "activerecord", "~> 6.
|
34
|
-
spec.add_dependency "activesupport", "~> 6.
|
30
|
+
spec.add_dependency "actionmailer", "~> 6.1.0"
|
31
|
+
spec.add_dependency "actionpack", "~> 6.1.0"
|
32
|
+
spec.add_dependency "actionview", "~> 6.1.0"
|
33
|
+
spec.add_dependency "activerecord", "~> 6.1.0"
|
34
|
+
spec.add_dependency "activesupport", "~> 6.1.0"
|
35
35
|
spec.add_dependency "aws-mfa-secure", "~> 0.4.0"
|
36
36
|
spec.add_dependency "aws-sdk-apigateway"
|
37
37
|
spec.add_dependency "aws-sdk-cloudformation"
|
@@ -43,28 +43,29 @@ Gem::Specification.new do |spec|
|
|
43
43
|
spec.add_dependency "aws-sdk-sns"
|
44
44
|
spec.add_dependency "aws-sdk-sqs"
|
45
45
|
spec.add_dependency "aws-sdk-ssm"
|
46
|
+
spec.add_dependency "cfn-status"
|
46
47
|
spec.add_dependency "cfn_camelizer", "~> 0.4.6"
|
47
|
-
spec.add_dependency "
|
48
|
+
spec.add_dependency "cfn_response"
|
48
49
|
spec.add_dependency "dotenv"
|
49
50
|
spec.add_dependency "gems" # jets-gems dependency
|
50
51
|
spec.add_dependency "hashie"
|
51
|
-
spec.add_dependency "jets-gems", "~> 0.2.3"
|
52
52
|
spec.add_dependency "jets-html-sanitizer"
|
53
53
|
spec.add_dependency "kramdown"
|
54
54
|
spec.add_dependency "memoist"
|
55
55
|
spec.add_dependency "mimemagic"
|
56
56
|
spec.add_dependency "rack"
|
57
|
-
spec.add_dependency "railties", "~> 6.
|
57
|
+
spec.add_dependency "railties", "~> 6.1.0" # for ActiveRecord database_tasks.rb
|
58
58
|
spec.add_dependency "rainbow"
|
59
59
|
spec.add_dependency "recursive-open-struct"
|
60
|
+
spec.add_dependency "serverlessgems"
|
60
61
|
spec.add_dependency "shotgun"
|
61
62
|
spec.add_dependency "text-table"
|
62
63
|
spec.add_dependency "thor"
|
63
64
|
spec.add_dependency "zeitwerk"
|
64
65
|
|
65
|
-
spec.add_development_dependency "byebug"
|
66
66
|
spec.add_development_dependency "bundler"
|
67
|
+
spec.add_development_dependency "byebug"
|
67
68
|
spec.add_development_dependency "rake"
|
69
|
+
spec.add_development_dependency "render_me_pretty"
|
68
70
|
spec.add_development_dependency "rspec"
|
69
|
-
spec.add_development_dependency "cfn-status"
|
70
71
|
end
|
data/lib/jets.rb
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
$stdout.sync = true unless ENV["JETS_STDOUT_SYNC"] == "0"
|
2
2
|
|
3
3
|
$:.unshift(File.expand_path("../", __FILE__))
|
4
|
+
|
5
|
+
require "jets/core_ext/bundler"
|
6
|
+
require "jets/autoloaders"
|
7
|
+
Jets::Autoloaders.log! if ENV["JETS_AUTOLOAD_LOG"]
|
8
|
+
Jets::Autoloaders.once.setup # must be called before cli.setup
|
9
|
+
Jets::Autoloaders.cli.setup
|
10
|
+
|
4
11
|
require "active_support"
|
5
12
|
require "active_support/concern"
|
6
13
|
require "active_support/core_ext"
|
@@ -8,24 +15,13 @@ require "active_support/dependencies"
|
|
8
15
|
require "active_support/ordered_hash"
|
9
16
|
require "active_support/ordered_options"
|
10
17
|
require "cfn_camelizer"
|
18
|
+
require "cfn_status"
|
11
19
|
require "fileutils"
|
12
|
-
require "jets/gems"
|
13
20
|
require "memoist"
|
14
21
|
require "rainbow/ext/string"
|
15
|
-
|
16
|
-
gem_root = File.dirname(__dir__)
|
17
|
-
$:.unshift("#{gem_root}/lib")
|
18
|
-
$:.unshift("#{gem_root}/vendor/cfn-status/lib")
|
19
|
-
require "cfn_status"
|
20
|
-
|
21
|
-
require "jets/core_ext/bundler"
|
22
|
-
|
23
|
-
require "jets/autoloaders"
|
24
|
-
Jets::Autoloaders.log! if ENV["JETS_AUTOLOAD_LOG"]
|
25
|
-
Jets::Autoloaders.once.setup
|
22
|
+
require "serverlessgems"
|
26
23
|
|
27
24
|
module Jets
|
28
|
-
RUBY_VERSION = "2.5.3"
|
29
25
|
MAX_FUNCTION_NAME_SIZE = 64
|
30
26
|
|
31
27
|
class Error < StandardError; end
|
data/lib/jets/application.rb
CHANGED
@@ -22,6 +22,7 @@ class Jets::Application
|
|
22
22
|
load_environments_config
|
23
23
|
load_db_config
|
24
24
|
set_iam_policy # relies on dependent values, must be called afterwards
|
25
|
+
set_time_zone
|
25
26
|
normalize_env_vars!
|
26
27
|
end
|
27
28
|
|
@@ -64,7 +65,7 @@ class Jets::Application
|
|
64
65
|
return ENV['JETS_PROJECT_NAME'] if ENV['JETS_PROJECT_NAME'] # override
|
65
66
|
|
66
67
|
lines = IO.readlines("#{Jets.root}/config/application.rb")
|
67
|
-
project_name_line = lines.find { |l| l =~ /config\.project_name.*=/ }
|
68
|
+
project_name_line = lines.find { |l| l =~ /config\.project_name.*=/ && l !~ /^\s+#/ }
|
68
69
|
project_name_line.gsub(/.*=/,'').strip.gsub(/["']/,'') # project_name
|
69
70
|
end
|
70
71
|
|
@@ -175,10 +176,16 @@ class Jets::Application
|
|
175
176
|
end
|
176
177
|
|
177
178
|
def set_iam_policy
|
178
|
-
config.iam_policy ||=
|
179
|
+
config.iam_policy ||= []
|
180
|
+
config.default_iam_policy ||= self.class.default_iam_policy
|
181
|
+
config.iam_policy = config.default_iam_policy | config.iam_policy
|
179
182
|
config.managed_policy_definitions ||= [] # default empty
|
180
183
|
end
|
181
184
|
|
185
|
+
def set_time_zone
|
186
|
+
Time.zone_default = Time.find_zone!(config.time_zone)
|
187
|
+
end
|
188
|
+
|
182
189
|
# It is pretty easy to attempt to set environment variables without
|
183
190
|
# the correct AWS Environment.Variables path struture.
|
184
191
|
# Auto-fix it for convenience.
|
@@ -10,18 +10,12 @@ class Jets::Application
|
|
10
10
|
effect: "Allow",
|
11
11
|
resource: "arn:aws:logs:#{Jets.aws.region}:#{Jets.aws.account}:log-group:/aws/lambda/#{project_namespace}-*",
|
12
12
|
}
|
13
|
-
s3_bucket = Jets.aws.s3_bucket
|
14
13
|
s3_readonly = {
|
15
|
-
action: ["s3:Get*", "s3:List*"],
|
14
|
+
action: ["s3:Get*", "s3:List*", "s3:HeadBucket"],
|
16
15
|
effect: "Allow",
|
17
|
-
resource: "arn:aws:s3:::#{s3_bucket}*",
|
16
|
+
resource: "arn:aws:s3:::#{Jets.aws.s3_bucket}*",
|
18
17
|
}
|
19
|
-
|
20
|
-
action: ["s3:ListAllMyBuckets", "s3:HeadBucket"],
|
21
|
-
effect: "Allow",
|
22
|
-
resource: "arn:aws:s3:::*", # scoped to all buckets
|
23
|
-
}
|
24
|
-
policies = [logs, s3_readonly, s3_bucket]
|
18
|
+
policies = [logs, s3_readonly]
|
25
19
|
|
26
20
|
cloudformation = {
|
27
21
|
action: ["cloudformation:DescribeStacks", "cloudformation:DescribeStackResources"],
|
@@ -57,6 +51,7 @@ class Jets::Application
|
|
57
51
|
config.autoload_paths = [] # allows for customization
|
58
52
|
config.ignore_paths = [] # allows for customization
|
59
53
|
config.logger = Jets::Logger.new($stderr)
|
54
|
+
config.time_zone = "UTC"
|
60
55
|
|
61
56
|
# function properties defaults
|
62
57
|
config.function = ActiveSupport::OrderedOptions.new
|
@@ -73,9 +68,9 @@ class Jets::Application
|
|
73
68
|
config.prewarm.rack_ratio = 5
|
74
69
|
|
75
70
|
config.gems = ActiveSupport::OrderedOptions.new
|
76
|
-
config.gems.
|
77
|
-
|
78
|
-
|
71
|
+
config.gems.clean = false
|
72
|
+
config.gems.disable = false
|
73
|
+
config.gems.source = "https://api.serverlessgems.com/api/v1"
|
79
74
|
|
80
75
|
config.inflections = ActiveSupport::OrderedOptions.new
|
81
76
|
config.inflections.irregular = {}
|
@@ -95,12 +90,13 @@ class Jets::Application
|
|
95
90
|
config.session.options = {}
|
96
91
|
|
97
92
|
config.api = ActiveSupport::OrderedOptions.new
|
93
|
+
config.api.api_key_required = false # Turn off API key required
|
98
94
|
config.api.authorization_type = "NONE"
|
99
|
-
config.api.
|
95
|
+
config.api.auto_replace = nil # https://github.com/boltops-tools/jets/issues/391
|
100
96
|
config.api.binary_media_types = ['multipart/form-data']
|
101
|
-
config.api.
|
97
|
+
config.api.cors_authorization_type = nil # nil so ApiGateway::Cors#cors_authorization_type handles
|
102
98
|
config.api.endpoint_policy = nil # required when endpoint_type is EDGE
|
103
|
-
config.api.
|
99
|
+
config.api.endpoint_type = 'EDGE' # PRIVATE, EDGE, REGIONAL
|
104
100
|
|
105
101
|
config.api.authorizers = ActiveSupport::OrderedOptions.new
|
106
102
|
config.api.authorizers.default_token_source = "Auth" # method.request.header.Auth
|
@@ -151,6 +147,9 @@ class Jets::Application
|
|
151
147
|
config.controllers.default_protect_from_forgery = nil
|
152
148
|
config.controllers.filtered_parameters = []
|
153
149
|
|
150
|
+
config.app = ActiveSupport::OrderedOptions.new
|
151
|
+
config.app.domain = nil
|
152
|
+
|
154
153
|
config.deploy = ActiveSupport::OrderedOptions.new
|
155
154
|
config.deploy.stagger = ActiveSupport::OrderedOptions.new
|
156
155
|
config.deploy.stagger.enabled = false
|
@@ -158,6 +157,9 @@ class Jets::Application
|
|
158
157
|
|
159
158
|
config.hot_reload = Jets.env.development?
|
160
159
|
|
160
|
+
config.ruby = ActiveSupport::OrderedOptions.new
|
161
|
+
config.ruby.check = true
|
162
|
+
|
161
163
|
config
|
162
164
|
end
|
163
165
|
|
data/lib/jets/autoloaders.rb
CHANGED
@@ -3,6 +3,8 @@ Jets::Bundle.setup
|
|
3
3
|
require "zeitwerk"
|
4
4
|
|
5
5
|
module Jets
|
6
|
+
module Commands ; end
|
7
|
+
|
6
8
|
module Autoloaders
|
7
9
|
class OnceInflector < Zeitwerk::Inflector
|
8
10
|
def camelize(basename, _abspath)
|
@@ -21,6 +23,7 @@ module Jets
|
|
21
23
|
def log!
|
22
24
|
main.log!
|
23
25
|
once.log!
|
26
|
+
cli.log!
|
24
27
|
end
|
25
28
|
|
26
29
|
def main
|
@@ -56,6 +59,17 @@ module Jets
|
|
56
59
|
end
|
57
60
|
memoize :once
|
58
61
|
|
62
|
+
def cli
|
63
|
+
Zeitwerk::Loader.new.tap do |loader|
|
64
|
+
loader.tag = "jets.cli"
|
65
|
+
loader.inflector = OnceInflector.new
|
66
|
+
|
67
|
+
loader.push_dir("#{__dir__}/commands", namespace: Jets::Commands)
|
68
|
+
loader.ignore("#{__dir__}/commands/templates*")
|
69
|
+
end
|
70
|
+
end
|
71
|
+
memoize :cli
|
72
|
+
|
59
73
|
private
|
60
74
|
def internal_app_paths
|
61
75
|
%w[
|
@@ -84,7 +98,7 @@ module Jets
|
|
84
98
|
builders/rackup_wrappers
|
85
99
|
builders/reconfigure_rails
|
86
100
|
builders/templates
|
87
|
-
commands
|
101
|
+
commands
|
88
102
|
controller/middleware/webpacker_setup.rb
|
89
103
|
core_ext
|
90
104
|
internal
|
data/lib/jets/booter.rb
CHANGED
@@ -83,7 +83,7 @@ class Jets::Booter
|
|
83
83
|
# using ActiveRecord rake tasks outside of Rails.
|
84
84
|
ActiveRecord::Tasks::DatabaseTasks.database_configuration = db_configs
|
85
85
|
|
86
|
-
if db_configs
|
86
|
+
if db_configs.configs_for(env_name: Jets.env).blank?
|
87
87
|
abort("ERROR: config/database.yml exists but no environment section configured for #{Jets.env}")
|
88
88
|
end
|
89
89
|
ActiveRecord::Base.configurations = db_configs
|
@@ -96,9 +96,9 @@ class Jets::Booter
|
|
96
96
|
# the same.
|
97
97
|
def connect_db
|
98
98
|
primary_hash_config = ActiveRecord::Base.configurations.configs_for(env_name: Jets.env).find { |hash_config|
|
99
|
-
hash_config.
|
99
|
+
hash_config.name == "primary"
|
100
100
|
}
|
101
|
-
primary_config = primary_hash_config.
|
101
|
+
primary_config = primary_hash_config.configuration_hash # configuration_hash is a normal Ruby Hash
|
102
102
|
ActiveRecord::Base.establish_connection(primary_config)
|
103
103
|
end
|
104
104
|
|
@@ -373,28 +373,29 @@ module Jets::Builders
|
|
373
373
|
end
|
374
374
|
end
|
375
375
|
|
376
|
-
def check_ruby_version
|
377
|
-
unless ruby_version_supported?
|
378
|
-
puts "You are using Ruby version #{RUBY_VERSION} which is not supported by Jets."
|
379
|
-
ruby_variant = Jets::RUBY_VERSION.split('.')[0..1].join('.') + '.x'
|
380
|
-
abort("Jets uses Ruby #{Jets::RUBY_VERSION}. You should use a variant of Ruby #{ruby_variant}".color(:red))
|
381
|
-
end
|
382
|
-
end
|
383
|
-
|
384
376
|
def copy_ruby_version_file
|
385
377
|
ruby_version_path = Jets.root.join(".ruby-version")
|
386
378
|
return unless File.exists?(ruby_version_path)
|
387
379
|
FileUtils.cp_r(ruby_version_path, build_area)
|
388
380
|
end
|
389
381
|
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
382
|
+
SUPPORTED_RUBY_VERSIONS = %w[2.5 2.7]
|
383
|
+
def check_ruby_version
|
384
|
+
return unless ENV['JETS_RUBY_CHECK'] == '0' || Jets.config.ruby.check == false
|
385
|
+
return if ruby_version_supported?
|
386
|
+
puts <<~EOL.color(:red)
|
387
|
+
You are using Ruby version #{RUBY_VERSION} which is not supported by Jets.
|
388
|
+
Please use one of the Jets supported ruby versions: #{SUPPORTED_RUBY_VERSIONS.join(' ')}
|
389
|
+
If you would like to skip this check you can set: JETS_RUBY_CHECK=0
|
390
|
+
EOL
|
391
|
+
exit 1
|
392
|
+
end
|
396
393
|
|
397
|
-
|
394
|
+
def ruby_version_supported?
|
395
|
+
md = RUBY_VERSION.match(/(\d+)\.(\d+)\.\d+/)
|
396
|
+
major, minor = md[1], md[2]
|
397
|
+
detected_ruby = [major, minor].join('.')
|
398
|
+
SUPPORTED_RUBY_VERSIONS.include?(detected_ruby)
|
398
399
|
end
|
399
400
|
|
400
401
|
# Group all the path settings together here
|
@@ -17,31 +17,18 @@ module Jets::Builders
|
|
17
17
|
end
|
18
18
|
|
19
19
|
# found gems will only have gems that were found
|
20
|
-
found_gems.each do |gem_name
|
21
|
-
|
22
|
-
gem_extractor = Jets::Gems::Extract::Gem.new(gem_name, options)
|
20
|
+
found_gems.each do |gem_name|
|
21
|
+
gem_extractor = Jets::Gems::Extract::Gem.new(gem_name, @options)
|
23
22
|
gem_extractor.run
|
24
|
-
rename_gem(gem_name)
|
25
23
|
end
|
26
24
|
|
27
25
|
tidy
|
28
26
|
end
|
29
27
|
|
30
|
-
def rename_gem(gem_name)
|
31
|
-
ruby_folder = "#{Jets.build_root}/stage/opt/ruby/gems/#{Jets::Gems.ruby_folder}"
|
32
|
-
gems_folder = "#{ruby_folder}/gems"
|
33
|
-
expr = "#{gems_folder}/#{gem_name}-x*-{darwin,linux}"
|
34
|
-
src = Dir.glob(expr).first
|
35
|
-
return unless src
|
36
|
-
|
37
|
-
dest = src.sub("-darwin", "-linux")
|
38
|
-
FileUtils.mv(src, dest) unless File.exist?(dest) # looks like rename_gem actually runs twice
|
39
|
-
end
|
40
|
-
|
41
28
|
def sh(command)
|
42
29
|
puts "=> #{command}".color(:green)
|
43
30
|
success = system(command)
|
44
|
-
abort("Command Failed") unless success
|
31
|
+
abort("Command Failed: #{command}") unless success
|
45
32
|
success
|
46
33
|
end
|
47
34
|
|
@@ -7,7 +7,7 @@ module Jets::Builders
|
|
7
7
|
# Then replace the binary gems.
|
8
8
|
def build
|
9
9
|
consolidate_gems_to_opt
|
10
|
-
replace_compiled_gems
|
10
|
+
replace_compiled_gems unless Jets.config.gems.disable
|
11
11
|
end
|
12
12
|
|
13
13
|
# Also restructure the folder from:
|
@@ -17,13 +17,13 @@ module Jets::Builders
|
|
17
17
|
#
|
18
18
|
# For Lambda Layer structure
|
19
19
|
def consolidate_gems_to_opt
|
20
|
-
src = "#{stage_area}/code/vendor/gems/ruby
|
21
|
-
dest = "#{stage_area}/opt/ruby/gems
|
20
|
+
src = "#{stage_area}/code/vendor/gems/ruby/#{Jets.ruby_folder}"
|
21
|
+
dest = "#{stage_area}/opt/ruby/gems/#{Jets.ruby_folder}"
|
22
22
|
rsync_and_link(src, dest)
|
23
23
|
|
24
24
|
return unless Jets.rack?
|
25
25
|
|
26
|
-
src = "#{stage_area}/rack/vendor/gems/ruby
|
26
|
+
src = "#{stage_area}/rack/vendor/gems/ruby/#{Jets.ruby_folder}"
|
27
27
|
rsync_and_link(src, dest)
|
28
28
|
end
|
29
29
|
|
@@ -59,7 +59,6 @@ module Jets::Builders
|
|
59
59
|
project_root = "#{stage_area}/opt"
|
60
60
|
headline "Replacing compiled gems with AWS Lambda Linux compiled versions: #{project_root}"
|
61
61
|
options = {
|
62
|
-
s3: "lambdagems2",
|
63
62
|
build_root: cache_area, # used in jets-gems
|
64
63
|
project_root: project_root, # used in gem_replacer and jets-gems
|
65
64
|
}
|