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

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 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