dpl 1.8.19.travis.1647.3 → 1.8.19.travis.1649.3
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 +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__)
|