dpl 1.5.2.travis.217.2 → 1.5.2.travis.218.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MjU4ODc2MTFiYmI2YjEyYzY0NzljNWJhMTZiYTcxNWNiMGNhMmI2ZA==
4
+ OTVkNjk1NDU1NzZiMmJhYzQxZWY4NmI1MDBlNmM0MDVhOTIxOGMzZg==
5
5
  data.tar.gz: !binary |-
6
- NDYyODkzNzA0ZmEwNmJkNTI4ZjIzMDE3MmM3MDg5MjdhNjkwYTQ5NQ==
6
+ MGUyYTJkMTE1ZTc5ZWY3Njg2ZmE0NGM0MDQwMDljYzk3NzUxY2ZlZQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- MTY3YzQ3MjU0YjVjZTg3MjBlY2EwZjFjOWJhNzY1ODEyNTBkNDA0NDdmNGE5
10
- ZjAyOGNlZjc1NTYwNzU3NDFiODU5ZWUyYjgwYmM2OWMwODdhNjc5NWJhNWNm
11
- YTI5ZWNlMDMxYjA3MTNmMDhhYzY0NWI3YTJjMDg4MzYzMGIzODU=
9
+ ZGE3ODdiNmQ3NWVkZGE0ZDgxMDM0ZGQ4MDM4YmY0N2Y0ZmQxN2JkN2Y1Mzg4
10
+ ZWI5YzQ3MjZiOTk3MDk0OGZmMDk3M2E4NmJmZjc1Y2ExNDg3NGM0ZjA2MTVl
11
+ ZmI0Y2E5ZGNiODg4NDM5ZjE1YjI5NzEwZjhmOTAxMmZhNjMzOTM=
12
12
  data.tar.gz: !binary |-
13
- OTRhYmViZTU0MGMzYjk4NzZhZTNjYTMxMjhjYzQ2OWJhMjc5ZmRjNTgwZjM4
14
- MzkyZmM0YmNhOTIxMGQyNmIzOWM2ZGU2Y2U3YWI3MWFjOWQzN2NhNmNhZWQx
15
- NGNkYjc1NzJmNDVkZDczZjE5NzZlOWRjZTdmNmFhMTQ2NGYyOWQ=
13
+ Y2ExMzE1NWIxOTQ0NjcxMTBiMzQ3YjNmODY4NzVkMDNmMThjZWE3ZTUxMjcz
14
+ MDI0Y2UyODY5ZjNhMzk4OWYyNjdkMGE5ZDI0OTQwMjNjMGQ2ODc0MjM0ZDQ3
15
+ OWU5M2U0ZTM4MmRmZjUwNjA1NmQ3NWRiZTViMTVhNzM4OGMwNDI=
data/README.md CHANGED
@@ -1,173 +1,180 @@
1
- # Dpl [![Build Status](https://travis-ci.org/travis-ci/dpl.png?branch=master)](https://travis-ci.org/travis-ci/dpl]) [![Code Climate](https://codeclimate.com/github/travis-ci/dpl.png)](https://codeclimate.com/github/travis-ci/dpl)
2
- Dpl (dee-pee-ell) is a deploy tool made for continuous deployment. Developed and used by Travis CI.
3
-
4
- ## Supported Providers:
5
- Dpl supports the following providers:
6
-
7
- * [AppFog](#appfog)
8
- * [Cloud Foundry](#cloud-foundry)
9
- * [cloudControl](#cloudcontrol)
10
- * [dotCloud (experimental)](#dotcloud)
11
- * [Engine Yard](#engine-yard)
12
- * [Heroku](#heroku)
13
- * [Nodejitsu](#nodejitsu)
14
- * [NPM](#npm)
15
- * [Openshift](#openshift)
16
- * [PyPi](#pypi)
17
- * [RubyGems](#rubygems)
18
- * [S3](#s3)
19
-
20
- ## Installation:
21
-
22
- Dpl is published to rubygems.
23
-
24
- * Dpl requires ruby with a version greater than 1.8.7
25
- * To install: `gem install dpl`
26
-
27
- ## Usage:
28
-
29
- ###Security Warning:
30
-
31
- Running dpl in a terminal that saves history is insecure as your password/api key will be saved as plain text by it.
32
-
33
- ###Global Flags
34
- * `--provider=<provider>` sets the provider you want to deploy to. Every provider has slightly different flags, which are documented in the section about your provider following.
35
- * Dpl will deploy by default from the latest commit. Use the `--skip_cleanup` flag to deploy from the current file state. Note that many providers deploy by git and could ignore this option.
36
-
37
-
38
- ### Heroku:
39
-
40
- #### Options:
41
- * **api-key**: Heroku API Key
42
- * **strategy[git/anvil]**: Deployment strategy for Dpl. Defaults to anvil.
43
- * **app**: Heroku app name. Defaults to the name of your git repo.
44
- * **username**: heroku username. Not necessary if api-key is used. Requires git strategy.
45
- * **password**: heroku password. Not necessary if api-key is used. Requires git strategy.
46
-
47
- #### Git vs Anvil Deploy:
48
- * 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.
49
- * The Git strategy allows using *user* and *password* instead of *api-key*.
50
- * When using Git, Heroku might send you an email for every deploy, as it adds a temporary SSH key to your account.
51
-
52
- 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.
53
-
54
- #### Examples:
55
-
56
- dpl --provider=heroku --api-key=`heroku auth:token`
57
- dpl --provider=heroku --strategy=git --username=<username> --password=<password> --app=<application>
58
-
59
-
60
-
61
-
62
- ### Nodejitsu:
63
-
64
- #### Options:
65
-
66
- * **username**: Nodejitsu Username
67
- * **api-key**: Nodejitsu API Key
68
-
69
- #### Examples:
70
- dpl --provider=nodejitsu --username=<username> --api-key=<api-key>
71
-
72
- ### Engine Yard:
73
-
74
- #### Options:
75
-
76
- * **api-key**: Engine Yard Api Key
77
- * **username**: Engine Yard username. Not necessary if api-key is used. Requires git strategy.
78
- * **password**: Engine Yard password. Not necessary if api-key is used.
79
- * **app**: Engine Yard Application name. Defaults to git repo's name.
80
- * **environment**: Engine Yard Application Environment. Optional.
81
- * **migrate**: Engine Yard migration commands. Optional.
82
-
83
- #### Examples:
84
-
85
- dpl --provider=engineyard --api-key=<api-key>
86
- dpl --provider=engineyard --username=<username> --password=<password> --environment=staging
87
- dpl --provider=engineyard --api-key=<api-key> --app=<application> --migrate=`rake db:migrate`
88
-
89
- ### Openshift:
90
-
91
- #### Options:
92
-
93
- * **username**: Openshift Username.
94
- * **password**: Openshift Password.
95
- * **domain**: Openshift Application Domain.
96
- * **app**: Openshift Application. Defaults to git repo's name.
97
-
98
- ####Examples:
99
-
100
- dpl --provider=openshift --username=<username> --password=<password> --domain=<domain>
101
- dpl --provider=openshift --username=<username> --password=<password> --domain=<domain> --app=<app>
102
-
103
- ### cloudControl:
104
-
105
- #### Options:
106
-
107
- * **email**: cloudControll email.
108
- * **password**: cloudControll password.
109
- * **deployment**: cloudControll Deployment. Follows the format "APP_NAME/DEP_NAME".
110
-
111
- #### Examples:
112
-
113
- dpl --provider=cloudcontroll --email=<email> --password<password> --deployment=`APP_NAME/DEP_NAME`
114
-
115
- ### RubyGems:
116
-
117
- #### Options:
118
-
119
- * **api-key**: Rubygems Api Key.
120
-
121
- #### Examples:
122
-
123
- dpl --provider=rubygems --api-key=<api-key>
124
-
125
- ### PyPI:
126
-
127
- #### Options:
128
-
129
- * **user**: PyPI Username.
130
- * **password**: PyPI Password.
131
- * **server**: Optional. Only required if you want to release to a different index. Follows the form of "https://mypackageindex.com/index".
132
-
133
- #### Examples:
134
-
135
- dpl --provider=pypi --user=<username> --password=<password>
136
- dpl --provider=pypi --user=<username> --password=<password> --server=`https://mypackageindex.com/index`
137
-
138
- ### NPM:
139
-
140
- #### Options:
141
-
142
- * **email**: NPM email.
143
- * **api-key**: NPM api key. Can be retrieved from your ~/.npmrc file.
144
-
145
- #### Examples:
146
-
147
- dpl --provider=npm --email=<email> --api-key=<api-key>
148
-
149
- ### S3:
150
-
151
- #### Options:
152
-
153
- * **access-key-id**: AWS Access Key ID. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
154
- * **secret-access-key**: AWS Secret Key. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
155
- * **bucket**: S3 Bucket.
156
-
157
- #### Examples:
158
-
159
- dpl --provider=s3 --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --bucket=<bucket>
160
-
161
- ### Appfog:
162
-
163
- #### Options:
164
-
165
- * **email**: Appfog Email.
166
- * **password**: Appfog Password.
167
- * **app**: Appfog App. Defaults to git repo's name.
168
-
169
- #### Examples:
170
-
171
- dpl --provider=appfog --email=<email> --password=<password>
172
- dpl --provider=appfog --email=<email> --password=<password> --app=<app>
173
-
1
+ # Dpl [![Build Status](https://travis-ci.org/travis-ci/dpl.png?branch=master)](https://travis-ci.org/travis-ci/dpl]) [![Code Climate](https://codeclimate.com/github/travis-ci/dpl.png)](https://codeclimate.com/github/travis-ci/dpl)
2
+ Dpl (dee-pee-ell) is a deploy tool made for continuous deployment. Developed and used by Travis CI.
3
+
4
+ ## Supported Providers:
5
+ Dpl supports the following providers:
6
+
7
+ * [AppFog](#appfog)
8
+ * [Cloud Foundry](#cloud-foundry)
9
+ * [cloudControl](#cloudcontroll)
10
+ * [dotCloud (experimental)](#dotcloud)
11
+ * [Engine Yard](#engine-yard)
12
+ * [Heroku](#heroku)
13
+ * [Nodejitsu](#nodejitsu)
14
+ * [NPM](#npm)
15
+ * [Openshift](#openshift)
16
+ * [PyPi](#pypi)
17
+ * [RubyGems](#rubygems)
18
+ * [S3](#s3)
19
+ * [Divshot.io](#divshot-io)
20
+
21
+ ## Installation:
22
+
23
+ Dpl is published to rubygems.
24
+
25
+ * Dpl requires ruby with a version greater than 1.8.7
26
+ * To install: `gem install dpl`
27
+
28
+ ## Usage:
29
+
30
+ ###Security Warning:
31
+
32
+ Running dpl in a terminal that saves history is insecure as your password/api key will be saved as plain text by it.
33
+
34
+ ###Global Flags
35
+ * `--provider=<provider>` sets the provider you want to deploy to. Every provider has slightly different flags, which are documented in the section about your provider following.
36
+ * Dpl will deploy by default from the latest commit. Use the `--skip_cleanup` flag to deploy from the current file state. Note that many providers deploy by git and could ignore this option.
37
+
38
+
39
+ ### Heroku:
40
+
41
+ #### Options:
42
+ * **api-key**: Heroku API Key
43
+ * **strategy[git/anvil]**: Deployment strategy for Dpl. Defaults to anvil.
44
+ * **app**: Heroku app name. Defaults to the name of your git repo.
45
+ * **username**: heroku username. Not necessary if api-key is used. Requires git strategy.
46
+ * **password**: heroku password. Not necessary if api-key is used. Requires git strategy.
47
+
48
+ #### Git vs Anvil Deploy:
49
+ * 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.
50
+ * The Git strategy allows using *user* and *password* instead of *api-key*.
51
+ * When using Git, Heroku might send you an email for every deploy, as it adds a temporary SSH key to your account.
52
+
53
+ 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.
54
+
55
+ #### Examples:
56
+
57
+ dpl --provider=heroku --api-key=`heroku auth:token`
58
+ dpl --provider=heroku --strategy=git --username=<username> --password=<password> --app=<application>
59
+
60
+
61
+
62
+
63
+ ### Nodejitsu:
64
+
65
+ #### Options:
66
+
67
+ * **username**: Nodejitsu Username
68
+ * **api-key**: Nodejitsu API Key
69
+
70
+ #### Examples:
71
+ dpl --provider=nodejitsu --username=<username> --api-key=<api-key>
72
+
73
+ ### Engine Yard:
74
+
75
+ #### Options:
76
+
77
+ * **api-key**: Engine Yard Api Key
78
+ * **username**: Engine Yard username. Not necessary if api-key is used. Requires git strategy.
79
+ * **password**: Engine Yard password. Not necessary if api-key is used.
80
+ * **app**: Engine Yard Application name. Defaults to git repo's name.
81
+ * **environment**: Engine Yard Application Environment. Optional.
82
+ * **migrate**: Engine Yard migration commands. Optional.
83
+
84
+ #### Examples:
85
+
86
+ dpl --provider=engineyard --api-key=<api-key>
87
+ dpl --provider=engineyard --username=<username> --password=<password> --environment=staging
88
+ dpl --provider=engineyard --api-key=<api-key> --app=<application> --migrate=`rake db:migrate`
89
+
90
+ ### Openshift:
91
+
92
+ #### Options:
93
+
94
+ * **username**: Openshift Username.
95
+ * **password**: Openshift Password.
96
+ * **domain**: Openshift Application Domain.
97
+ * **app**: Openshift Application. Defaults to git repo's name.
98
+
99
+ ####Examples:
100
+
101
+ dpl --provider=openshift --username=<username> --password=<password> --domain=<domain>
102
+ dpl --provider=openshift --username=<username> --password=<password> --domain=<domain> --app=<app>
103
+
104
+ ### cloudControl:
105
+
106
+ #### Options:
107
+
108
+ * **email**: cloudControll email.
109
+ * **password**: cloudControll password.
110
+ * **deployment**: cloudControll Deployment. Follows the format "APP_NAME/DEP_NAME".
111
+
112
+ #### Examples:
113
+
114
+ dpl --provider=cloudcontroll --email=<email> --password<password> --deployment=`APP_NAME/DEP_NAME`
115
+
116
+ ### RubyGems:
117
+
118
+ #### Options:
119
+
120
+ * **api-key**: Rubygems Api Key.
121
+
122
+ #### Examples:
123
+
124
+ dpl --provider=rubygems --api-key=<api-key>
125
+
126
+ ### PyPI:
127
+
128
+ #### Options:
129
+
130
+ * **user**: PyPI Username.
131
+ * **password**: PyPI Password.
132
+ * **server**: Optional. Only required if you want to release to a different index. Follows the form of "https://mypackageindex.com/index".
133
+
134
+ #### Examples:
135
+
136
+ dpl --provider=pypi --user=<username> --password=<password>
137
+ dpl --provider=pypi --user=<username> --password=<password> --server=`https://mypackageindex.com/index`
138
+
139
+ ### NPM:
140
+
141
+ #### Options:
142
+
143
+ * **email**: NPM email.
144
+ * **api-key**: NPM api key. Can be retrieved from your ~/.npmrc file.
145
+
146
+ #### Examples:
147
+
148
+ dpl --provider=npm --email=<email> --api-key=<api-key>
149
+
150
+ ### S3:
151
+
152
+ #### Options:
153
+
154
+ * **access-key-id**: AWS Access Key ID. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
155
+ * **secret-access-key**: AWS Secret Key. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
156
+ * **bucket**: S3 Bucket.
157
+
158
+ #### Examples:
159
+
160
+ dpl --provider=s3 --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --bucket=<bucket>
161
+
162
+ ### Appfog:
163
+
164
+ #### Options:
165
+
166
+ * **email**: Appfog Email.
167
+ * **password**: Appfog Password.
168
+ * **app**: Appfog App. Defaults to git repo's name.
169
+
170
+ #### Examples:
171
+
172
+ dpl --provider=appfog --email=<email> --password=<password>
173
+ dpl --provider=appfog --email=<email> --password=<password> --app=<app>
174
+
175
+ ### Divshot.io:
176
+
177
+ #### Options:
178
+
179
+ * **api-key**: Divshot.io API key
180
+ * **environment**: Which environment (development, staging, production) to deploy to
@@ -17,6 +17,7 @@ module DPL
17
17
  autoload :CloudControl, 'dpl/provider/cloudcontrol'
18
18
  autoload :CloudFoundry, 'dpl/provider/cloud_foundry'
19
19
  autoload :PyPI, 'dpl/provider/pypi'
20
+ autoload :Divshot, 'dpl/provider/divshot'
20
21
 
21
22
  def self.new(context, options)
22
23
  return super if self < Provider
@@ -0,0 +1,23 @@
1
+ module DPL
2
+ class Provider
3
+ class Divshot < Provider
4
+ npm_g 'divshot-cli', 'divshot'
5
+
6
+ def check_auth
7
+ raise Error, "must supply an api key" unless option(:api_key)
8
+ end
9
+
10
+ def check_app
11
+ error "missing divshot.json" unless File.exist? "divshot.json"
12
+ end
13
+
14
+ def needs_key?
15
+ false
16
+ end
17
+
18
+ def push_app
19
+ context.shell "divshot push #{options[:environment] || "production"} --token #{option(:api_key)}"
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+ require 'dpl/provider/divshot'
3
+
4
+ describe DPL::Provider::Divshot do
5
+ subject :provider do
6
+ described_class.new DummyContext.new, :api_key => 'abc123'
7
+ end
8
+
9
+ describe :check_auth do
10
+ it 'should require an api key' do
11
+ provider.options.update(:api_key => nil)
12
+ expect{ provider.check_auth }.to raise_error("must supply an api key")
13
+ end
14
+ end
15
+
16
+ describe :push_app do
17
+ it 'should include the environment specified' do
18
+ provider.options.update(:environment => 'development')
19
+ provider.context.should_receive(:shell).with("divshot push development --token abc123")
20
+ provider.push_app
21
+ end
22
+
23
+ it 'should default to production' do
24
+ provider.context.should_receive(:shell).with("divshot push production --token abc123")
25
+ provider.push_app
26
+ end
27
+ end
28
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dpl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.2.travis.217.2
4
+ version: 1.5.2.travis.218.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Haase
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-06 00:00:00.000000000 Z
11
+ date: 2013-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -88,6 +88,7 @@ files:
88
88
  - lib/dpl/provider/appfog.rb
89
89
  - lib/dpl/provider/cloud_foundry.rb
90
90
  - lib/dpl/provider/cloudcontrol.rb
91
+ - lib/dpl/provider/divshot.rb
91
92
  - lib/dpl/provider/dot_cloud.rb
92
93
  - lib/dpl/provider/engine_yard.rb
93
94
  - lib/dpl/provider/heroku.rb
@@ -106,6 +107,7 @@ files:
106
107
  - spec/cli_spec.rb
107
108
  - spec/provider/appfog_spec.rb
108
109
  - spec/provider/cloudcontrol_spec.rb
110
+ - spec/provider/divshot_spec.rb
109
111
  - spec/provider/dotcloud_spec.rb
110
112
  - spec/provider/heroku_anvil_spec.rb
111
113
  - spec/provider/heroku_git_spec.rb