dpl 1.8.19.travis.1647.3 → 1.8.19.travis.1649.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +10 -6
- data/lib/dpl/provider/atlas.rb +17 -7
- data/lib/dpl/provider/s3.rb +1 -0
- data/spec/provider/s3_spec.rb +7 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
Nzc1ODRlYTE1NjdhYTU4Y2I0OTI1MzRhNjkyN2EzNjA5ODQ2MTQzMg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MGYxMWEwMTQ4MjIwNzAzZTc0NjFkNTc4N2VhNDk5Y2Q3NDAxYzQwZg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
M2MzMjAyNzk1ZTA2ZTQxNWE5Y2FhZTUyODJhZmFmYTQwM2NmZDFkNzA1M2M3
|
10
|
+
NmVkODRlM2M0ZTg5OTVkZmM0ZThiY2ZlZDA5NWUxZjBlMzBlMzA3OTA2NTk4
|
11
|
+
MWNhYzU1ZmE3OTJlMzk4ZjFmNDA1YzFkYTE3YTExYWJkYzNlMTI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MDZlZTIwYmZlMGU2NTJiMWFjNWQ2ZTA0ZjRmY2EyOTY0MWU2ZTlmZDNiM2Q2
|
14
|
+
MWM1NWQzZTAxMDA1MDE2MDAzYThmYmM4ZDcxODMwZWQ1MTE2OWI0YWJlMmQ4
|
15
|
+
OWNkYTI0ZDQzYWY5OGIyNWY3ZGYzZWNjNmEwNWNiMTIyMDg4NTI=
|
data/README.md
CHANGED
@@ -52,7 +52,7 @@ Dpl supports the following providers:
|
|
52
52
|
|
53
53
|
Dpl is published to rubygems.
|
54
54
|
|
55
|
-
* Dpl requires ruby with a version greater than 1.
|
55
|
+
* Dpl requires ruby with a version greater than 1.9.3
|
56
56
|
* To install: `gem install dpl`
|
57
57
|
|
58
58
|
## Usage:
|
@@ -69,18 +69,18 @@ Running dpl in a terminal that saves history is insecure as your password/api ke
|
|
69
69
|
|
70
70
|
#### Options:
|
71
71
|
* **api-key**: Heroku API Key
|
72
|
-
* **strategy**: Deployment strategy for Dpl. Defaults to
|
72
|
+
* **strategy[git/anvil]**: Deployment strategy for Dpl. Defaults to anvil.
|
73
73
|
* **app**: Heroku app name. Defaults to the name of your git repo.
|
74
74
|
* **username**: heroku username. Not necessary if api-key is used. Requires git strategy.
|
75
75
|
* **password**: heroku password. Not necessary if api-key is used. Requires git strategy.
|
76
76
|
|
77
|
-
####
|
78
|
-
*
|
79
|
-
* Git deploy will send the contents of the git repo only, so may not contain any local changes.
|
80
|
-
* Anvil deploys are no longer supported since Heroku shut down the Anvil service.
|
77
|
+
#### Git vs Anvil Deploy:
|
78
|
+
* Anvil will run the [buildpack](https://devcenter.heroku.com/articles/buildpacks) compilation step on the Travis CI VM, whereas the Git strategy will run it on a Heroku dyno, which provides the same environment the application will then run under and might be slightly faster.
|
81
79
|
* The Git strategy allows using *user* and *password* instead of *api-key*.
|
82
80
|
* When using Git, Heroku might send you an email for every deploy, as it adds a temporary SSH key to your account.
|
83
81
|
|
82
|
+
As a rule of thumb, you should switch to the Git strategy if you run into issues with Anvil or if you're using the [user-env-compile](https://devcenter.heroku.com/articles/labs-user-env-compile) plugin.
|
83
|
+
|
84
84
|
#### Examples:
|
85
85
|
|
86
86
|
dpl --provider=heroku --api-key=`heroku auth:token`
|
@@ -316,6 +316,7 @@ For authentication you can also use Travis CI secure environment variable:
|
|
316
316
|
* **bucket**: S3 Bucket.
|
317
317
|
* **region**: S3 Region. Defaults to us-east-1.
|
318
318
|
* **upload-dir**: S3 directory to upload to. Defaults to root directory.
|
319
|
+
* **storage-class**: S3 storage class to upload as. Defaults to "STANDARD". Other values are "STANDARD_IA" or "REDUCED_REDUNDANCY". Details can be found [here](https://aws.amazon.com/s3/storage-classes/).
|
319
320
|
* **local-dir**: Local directory to upload from. Can be set from a global perspective (~/travis/build) or relative perspective (build) Defaults to project root.
|
320
321
|
* **detect-encoding**: Set HTTP header `Content-Encoding` for files compressed with `gzip` and `compress` utilities. Defaults to not set.
|
321
322
|
* **cache_control**: Set HTTP header `Cache-Control` to suggest that the browser cache the file. Defaults to `no-cache`. Valid options are `no-cache`, `no-store`, `max-age=<seconds>`,`s-maxage=<seconds>` `no-transform`, `public`, `private`.
|
@@ -674,6 +675,9 @@ c. Update your `before_deploy` step in `.travis.yml` to update the `known_hosts`
|
|
674
675
|
|
675
676
|
#### Options:
|
676
677
|
|
678
|
+
* **access_key_id**: AWS Access Key ID. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
|
679
|
+
* **secret_access_key**: AWS Secret Key. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
|
680
|
+
* **region**: AWS Region the Lambda function is running in. Defaults to 'us-east-1'.
|
677
681
|
* **function_name**: Required. The name of the Lambda being created / updated.
|
678
682
|
* **role**: Required. The ARN of the IAM role to assign to this Lambda function.
|
679
683
|
* **handler_name**: Required. The function that Lambda calls to begin execution. For NodeJS, it is exported function for the module.
|
data/lib/dpl/provider/atlas.rb
CHANGED
@@ -16,14 +16,15 @@ module DPL
|
|
16
16
|
chmod +x $HOME/bin/gimme
|
17
17
|
fi
|
18
18
|
|
19
|
-
|
20
|
-
|
19
|
+
if [ -z $GOPATH ]; then
|
20
|
+
export GOPATH="$HOME/gopath"
|
21
|
+
else
|
22
|
+
export GOPATH="$HOME/gopath:$GOPATH"
|
23
|
+
fi
|
24
|
+
eval "$(gimme 1.6)" &> /dev/null
|
21
25
|
|
22
26
|
go get #{ATLAS_UPLOAD_CLI_GO_REMOTE}
|
23
|
-
|
24
|
-
make &>/dev/null
|
25
|
-
cp bin/atlas-upload $HOME/bin/atlas-upload
|
26
|
-
popd &>/dev/null
|
27
|
+
cp $HOME/gopath/bin/atlas-upload-cli $HOME/bin/atlas-upload
|
27
28
|
fi
|
28
29
|
EOF
|
29
30
|
|
@@ -59,7 +60,9 @@ module DPL
|
|
59
60
|
private
|
60
61
|
|
61
62
|
def install_atlas_upload
|
62
|
-
|
63
|
+
without_git_http_user_agent do
|
64
|
+
context.shell ATLAS_UPLOAD_INSTALL_SCRIPT
|
65
|
+
end
|
63
66
|
end
|
64
67
|
|
65
68
|
def assert_app_present!
|
@@ -93,6 +96,13 @@ module DPL
|
|
93
96
|
def atlas_app
|
94
97
|
@atlas_app ||= options.fetch(:app).to_s
|
95
98
|
end
|
99
|
+
|
100
|
+
def without_git_http_user_agent(&block)
|
101
|
+
git_http_user_agent = ENV.delete("GIT_HTTP_USER_AGENT")
|
102
|
+
yield
|
103
|
+
ENV["GIT_HTTP_USER_AGENT"] = git_http_user_agent
|
104
|
+
end
|
105
|
+
|
96
106
|
end
|
97
107
|
end
|
98
108
|
end
|
data/lib/dpl/provider/s3.rb
CHANGED
@@ -50,6 +50,7 @@ module DPL
|
|
50
50
|
opts[:cache_control] = get_option_value_by_filename(options[:cache_control], filename) if options[:cache_control]
|
51
51
|
opts[:acl] = options[:acl].gsub(/_/, '-') if options[:acl]
|
52
52
|
opts[:expires] = get_option_value_by_filename(options[:expires], filename) if options[:expires]
|
53
|
+
opts[:storage_class] = options[:storage_class] if options[:storage_class]
|
53
54
|
unless File.directory?(filename)
|
54
55
|
log "uploading #{filename.inspect} with #{opts.inspect}"
|
55
56
|
result = api.bucket(option(:bucket)).object(upload_path(filename)).upload_file(filename, opts)
|
data/spec/provider/s3_spec.rb
CHANGED
@@ -127,6 +127,13 @@ describe DPL::Provider::S3 do
|
|
127
127
|
provider.push_app
|
128
128
|
end
|
129
129
|
|
130
|
+
example "Sets Storage Class" do
|
131
|
+
provider.options.update(:storage_class => "STANDARD_AI")
|
132
|
+
expect(Dir).to receive(:glob).and_yield(__FILE__)
|
133
|
+
expect_any_instance_of(Aws::S3::Object).to receive(:upload_file).with(anything(), hash_including(:storage_class => "STANDARD_AI"))
|
134
|
+
provider.push_app
|
135
|
+
end
|
136
|
+
|
130
137
|
example "Sets Website Index Document" do
|
131
138
|
provider.options.update(:index_document_suffix => "test/index.html")
|
132
139
|
expect(Dir).to receive(:glob).and_yield(__FILE__)
|