dpl 1.8.0 → 1.8.18.travis.1472.4
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 +13 -5
- data/.travis.yml +0 -1
- data/Gemfile +8 -0
- data/README.md +127 -84
- data/TESTING.md +2 -0
- data/dpl.gemspec +0 -1
- data/lib/dpl/provider/anynines.rb +2 -2
- data/lib/dpl/provider/azure_webapps.rb +14 -6
- data/lib/dpl/provider/bintray.rb +6 -3
- data/lib/dpl/provider/boxfuse.rb +12 -12
- data/lib/dpl/provider/cloud_files.rb +4 -1
- data/lib/dpl/provider/cloud_foundry.rb +5 -6
- data/lib/dpl/provider/code_deploy.rb +1 -1
- data/lib/dpl/provider/deis.rb +41 -2
- data/lib/dpl/provider/elastic_beanstalk.rb +45 -1
- data/lib/dpl/provider/firebase.rb +26 -0
- data/lib/dpl/provider/gae.rb +10 -15
- data/lib/dpl/provider/gcs.rb +1 -1
- data/lib/dpl/provider/heroku/api.rb +2 -2
- data/lib/dpl/provider/lambda.rb +5 -2
- data/lib/dpl/provider/launchpad.rb +48 -0
- data/lib/dpl/provider/modulus.rb +1 -1
- data/lib/dpl/provider/npm.rb +3 -2
- data/lib/dpl/provider/ops_works.rb +1 -1
- data/lib/dpl/provider/pypi.rb +32 -12
- data/lib/dpl/provider/releases.rb +22 -12
- data/lib/dpl/provider/s3.rb +19 -11
- data/lib/dpl/provider/scalingo.rb +97 -0
- data/lib/dpl/provider/script.rb +1 -1
- data/lib/dpl/provider/surge.rb +33 -0
- data/lib/dpl/provider/testfairy.rb +8 -2
- data/lib/dpl/provider.rb +21 -5
- data/lib/dpl/version.rb +1 -1
- data/spec/provider/anynines_spec.rb +3 -4
- data/spec/provider/boxfuse_spec.rb +2 -2
- data/spec/provider/cloudfoundry_spec.rb +7 -8
- data/spec/provider/deis_spec.rb +27 -1
- data/spec/provider/elastic_beanstalk_spec.rb +41 -1
- data/spec/provider/firebase_spec.rb +34 -0
- data/spec/provider/gae_spec.rb +1 -1
- data/spec/provider/gcs_spec.rb +1 -1
- data/spec/provider/launchpad_spec.rb +33 -0
- data/spec/provider/modulus_spec.rb +1 -1
- data/spec/provider/npm_spec.rb +5 -4
- data/spec/provider/pypi_spec.rb +3 -3
- data/spec/provider/releases_spec.rb +53 -2
- data/spec/provider/s3_spec.rb +1 -2
- data/spec/provider/scalingo_spec.rb +64 -0
- data/spec/provider/surge_spec.rb +15 -0
- data/spec/provider_spec.rb +20 -1
- data/spec/spec_helper.rb +0 -8
- metadata +27 -83
- data/lib/dpl/provider/biicode.rb +0 -35
- data/lib/dpl/provider/cloudcontrol.rb +0 -96
- data/lib/dpl/provider/dot_cloud.rb +0 -29
- data/lib/dpl/provider/exoscale.rb +0 -26
- data/notes/dotcloud.md +0 -8
- data/spec/provider/cloudcontrol_spec.rb +0 -191
- data/spec/provider/dotcloud_spec.rb +0 -42
- data/spec/provider/exoscale_spec.rb +0 -191
checksums.yaml
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
|
|
2
|
+
!binary "U0hBMQ==":
|
|
3
|
+
metadata.gz: !binary |-
|
|
4
|
+
ZWQ3MjkyNDFkMzQ4NTIxMTUxNGIyNTZhMjdiYThmZThhMzg0OWI5YQ==
|
|
5
|
+
data.tar.gz: !binary |-
|
|
6
|
+
ZjRmYmZlYzkwMDFlYzMzYjM3NGE5Zjg2NGY3NjVlNmZmOWIxZmY3NA==
|
|
5
7
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
|
|
8
|
+
metadata.gz: !binary |-
|
|
9
|
+
NTNhYjEwMzA4MTg4YTBiM2JmNjk1Y2IxNTg3YWI2OTAyZmZjYzdhNDk3MTAz
|
|
10
|
+
NGRlOGU4Mjg1ZWY1YTY0MTk4MjQ4MWY4YjE0Y2RjNmQ3NGQzZjRhZmEyYjdj
|
|
11
|
+
OWE0YjlmMDk0OGRlYWQwMzY0MGVmNjZjYWVlNjgwYzJiNzFlNWY=
|
|
12
|
+
data.tar.gz: !binary |-
|
|
13
|
+
YjUxN2EyMWNmM2M0N2FmNmIyY2IxY2E1YTQ3ZDczMmZhZWE5NWY5Yzg2NmM0
|
|
14
|
+
OTQ2MmI3NGE2ZWRjMjk2OWM3MzlkMzc0YTA3YWExZWFhY2Y4YjZmM2ZhODM2
|
|
15
|
+
MDdlNTJiNzBmNDY2MDY2NDJkZjczNDNmMTQyMWFlMTRkYjI3NzU=
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
|
@@ -4,6 +4,8 @@ gemspec
|
|
|
4
4
|
platforms :mri_19 do
|
|
5
5
|
gem 'slop', '~> 3.6.0'
|
|
6
6
|
gem 'ohai', '~> 7.4.0'
|
|
7
|
+
gem 'amq-protocol', '~> 1.9.2'
|
|
8
|
+
gem 'net-ssh', '~> 2.9.2'
|
|
7
9
|
end
|
|
8
10
|
|
|
9
11
|
group :heroku do
|
|
@@ -41,6 +43,7 @@ group :lambda do
|
|
|
41
43
|
end
|
|
42
44
|
|
|
43
45
|
group :cloud_files do
|
|
46
|
+
gem 'fog-google', '< 0.1.1', platforms: :mri_19
|
|
44
47
|
gem 'fog'
|
|
45
48
|
end
|
|
46
49
|
|
|
@@ -60,6 +63,7 @@ end
|
|
|
60
63
|
|
|
61
64
|
group :bitballoon do
|
|
62
65
|
gem 'bitballoon'
|
|
66
|
+
gem 'jwt', '< 1.5.3', platforms: :mri_19
|
|
63
67
|
end
|
|
64
68
|
|
|
65
69
|
group :puppet_forge do
|
|
@@ -78,3 +82,7 @@ end
|
|
|
78
82
|
group :chef_supermarket do
|
|
79
83
|
gem 'chef'
|
|
80
84
|
end
|
|
85
|
+
|
|
86
|
+
group :deis do
|
|
87
|
+
gem 'git'
|
|
88
|
+
end
|
data/README.md
CHANGED
|
@@ -10,41 +10,41 @@ Dpl supports the following providers:
|
|
|
10
10
|
* [Anynines](#anynines)
|
|
11
11
|
* [AppFog](#appfog)
|
|
12
12
|
* [Atlas by HashiCorp](#atlas)
|
|
13
|
-
* [
|
|
14
|
-
* [
|
|
13
|
+
* [AWS CodeDeploy](#aws-codedeploy)
|
|
14
|
+
* [AWS OpsWorks](#opsworks)
|
|
15
|
+
* [Azure Web Apps](#azure-web-apps)
|
|
15
16
|
* [Bintray](#bintray)
|
|
16
17
|
* [BitBalloon](#bitballoon)
|
|
17
18
|
* [Boxfuse](#boxfuse)
|
|
19
|
+
* [Chef Supermarket](#chef-supermarket)
|
|
18
20
|
* [Cloud 66](#cloud-66)
|
|
19
21
|
* [Cloud Foundry](#cloud-foundry)
|
|
20
|
-
* [
|
|
21
|
-
* [
|
|
22
|
+
* [Deis](#deis)
|
|
23
|
+
* [Divshot.io](#divshotio)
|
|
24
|
+
* [Elastic Beanstalk](#elastic-beanstalk)
|
|
22
25
|
* [Engine Yard](#engine-yard)
|
|
26
|
+
* [Firebase](#firebase)
|
|
27
|
+
* [Github Releases](#github-releases)
|
|
28
|
+
* [Google App Engine (experimental)](#google-app-engine)
|
|
29
|
+
* [Google Cloud Storage](#google-cloud-storage)
|
|
30
|
+
* [Hackage](#hackage)
|
|
23
31
|
* [Heroku](#heroku)
|
|
32
|
+
* [Lambda](#lambda)
|
|
33
|
+
* [Launchpad](#launchpad)
|
|
34
|
+
* [Modulus](#modulus)
|
|
24
35
|
* [Nodejitsu](#nodejitsu)
|
|
25
36
|
* [NPM](#npm)
|
|
26
37
|
* [OpenShift](#openshift)
|
|
38
|
+
* [packagecloud](#packagecloud)
|
|
39
|
+
* [Puppet Forge](#puppet-forge)
|
|
27
40
|
* [PyPi](#pypi)
|
|
41
|
+
* [Rackspace Cloud Files](#rackspace-cloud-files)
|
|
28
42
|
* [RubyGems](#rubygems)
|
|
29
43
|
* [S3](#s3)
|
|
30
|
-
* [
|
|
31
|
-
* [Rackspace Cloud Files](#rackspace-cloud-files)
|
|
32
|
-
* [AWS OpsWorks](#opsworks)
|
|
33
|
-
* [Modulus](#modulus)
|
|
34
|
-
* [Github Releases](#github-releases)
|
|
35
|
-
* [Hackage](#hackage)
|
|
36
|
-
* [Deis](#deis)
|
|
37
|
-
* [Google Cloud Storage](#google-cloud-storage)
|
|
38
|
-
* [Elastic Beanstalk](#elastic-beanstalk)
|
|
39
|
-
* [Puppet Forge](#puppet-forge)
|
|
40
|
-
* [packagecloud](#packagecloud)
|
|
41
|
-
* [Chef Supermarket](#chef-supermarket)
|
|
42
|
-
* [Lambda](#lambda)
|
|
43
|
-
* [TestFairy](#testfairy)
|
|
44
|
-
* [ExoScale](#exoscale)
|
|
45
|
-
* [AWS CodeDeploy](#aws-codedeploy)
|
|
44
|
+
* [Scalingo](#scalingo)
|
|
46
45
|
* [Script](#script)
|
|
47
|
-
* [
|
|
46
|
+
* [Surge.sh](#surgesh)
|
|
47
|
+
* [TestFairy](#testfairy)
|
|
48
48
|
|
|
49
49
|
## Installation:
|
|
50
50
|
|
|
@@ -130,7 +130,7 @@ As a rule of thumb, you should switch to the Git strategy if you run into issues
|
|
|
130
130
|
"released": "2015-01-04",
|
|
131
131
|
"vcs_tag": "0.5",
|
|
132
132
|
"attributes": [{"name": "VerAtt1", "values" : ["VerVal1"], "type": "string"},
|
|
133
|
-
{"name": "VerAtt2", "values" : [1, 3.
|
|
133
|
+
{"name": "VerAtt2", "values" : [1, 3.2, 5], "type": "number"},
|
|
134
134
|
{"name": "VerAtt3", "values" : ["2015-01-01T19:43:37+0100"], "type": "date"}],
|
|
135
135
|
"gpgSign": false
|
|
136
136
|
},
|
|
@@ -149,7 +149,7 @@ As a rule of thumb, you should switch to the Git strategy if you run into issues
|
|
|
149
149
|
The files will be uploaded to Bintray under the gems folder.
|
|
150
150
|
2. All files under build/docs. The files will be uploaded to Bintray under the docs folder.
|
|
151
151
|
|
|
152
|
-
Note: Regular expressions defined as part of the includePattern
|
|
152
|
+
Note: Regular expressions defined as part of the includePattern property must be wrapped with brackets. */
|
|
153
153
|
|
|
154
154
|
"files":
|
|
155
155
|
[
|
|
@@ -261,18 +261,6 @@ For authentication you can also use Travis CI secure environment variable:
|
|
|
261
261
|
dpl --provider=openshift --user=<username> --password=<password> --domain=<domain>
|
|
262
262
|
dpl --provider=openshift --user=<username> --password=<password> --domain=<domain> --app=<app>
|
|
263
263
|
|
|
264
|
-
### cloudControl:
|
|
265
|
-
|
|
266
|
-
#### Options:
|
|
267
|
-
|
|
268
|
-
* **email**: cloudControl email.
|
|
269
|
-
* **password**: cloudControl password.
|
|
270
|
-
* **deployment**: cloudControl Deployment. Follows the format "APP_NAME/DEP_NAME".
|
|
271
|
-
|
|
272
|
-
#### Examples:
|
|
273
|
-
|
|
274
|
-
dpl --provider=cloudcontrol --email=<email> --password<password> --deployment=`APP_NAME/DEP_NAME`
|
|
275
|
-
|
|
276
264
|
### RubyGems:
|
|
277
265
|
|
|
278
266
|
#### Options:
|
|
@@ -289,9 +277,17 @@ For authentication you can also use Travis CI secure environment variable:
|
|
|
289
277
|
|
|
290
278
|
* **user**: PyPI Username.
|
|
291
279
|
* **password**: PyPI Password.
|
|
292
|
-
* **server**: Optional. Only required if you want to release to a different index. Follows the form of
|
|
293
|
-
* **distributions**: A space-separated list of distributions to be uploaded to PyPI. Defaults to 'sdist'.
|
|
294
|
-
* **docs_dir**: A path to the directory to upload documentation from. Defaults to 'build/docs'
|
|
280
|
+
* **server**: Optional. Only required if you want to release to a different index. Follows the form of 'https://mypackageindex.com/index'. Defaults to 'https://pypi.python.org/pypi'.
|
|
281
|
+
* **distributions**: Optional. A space-separated list of distributions to be uploaded to PyPI. Defaults to 'sdist'.
|
|
282
|
+
* **docs_dir**: Optional. A path to the directory to upload documentation from. Defaults to 'build/docs'
|
|
283
|
+
|
|
284
|
+
#### Environment variables:
|
|
285
|
+
|
|
286
|
+
* **PYPI_USER**: PyPI Username. Used if the `user` option is omitted.
|
|
287
|
+
* **PYPI_PASSWORD**: PyPI Password. Used if the `password` option is omitted.
|
|
288
|
+
* **PYPI_SERVER** Optional. Only required if you want to release to a different index. Used if the `server` option is omitted.
|
|
289
|
+
* **PYPI_DISTRIBUTIONS** Optional. A space-separated list of distributions to be uploaded to PyPI. Used if the `distributions` option is omitted.
|
|
290
|
+
* **PYPI_DOCS_DIR** Optional. A path to the directory to upload documentation from. Used if the `docs_dir` option is omitted.
|
|
295
291
|
|
|
296
292
|
#### Examples:
|
|
297
293
|
|
|
@@ -309,20 +305,6 @@ For authentication you can also use Travis CI secure environment variable:
|
|
|
309
305
|
|
|
310
306
|
dpl --provider=npm --email=<email> --api-key=<api-key>
|
|
311
307
|
|
|
312
|
-
### biicode:
|
|
313
|
-
|
|
314
|
-
**Requires `sudo`; cannot be used on containers**
|
|
315
|
-
|
|
316
|
-
#### Options:
|
|
317
|
-
|
|
318
|
-
* **user**: biicode username.
|
|
319
|
-
* **password**: biicode password.
|
|
320
|
-
|
|
321
|
-
#### Examples:
|
|
322
|
-
|
|
323
|
-
dpl --provider=biicode --user=<user> --password=<password>
|
|
324
|
-
|
|
325
|
-
|
|
326
308
|
### S3:
|
|
327
309
|
|
|
328
310
|
#### Options:
|
|
@@ -339,6 +321,7 @@ For authentication you can also use Travis CI secure environment variable:
|
|
|
339
321
|
* **acl**: Sets the access control for the uploaded objects. Defaults to `private`. Valid options are `private`, `public_read`, `public_read_write`, `authenticated_read`, `bucket_owner_read`, `bucket_owner_full_control`.
|
|
340
322
|
* **dot_match**: When set to `true`, upload files starting a `.`.
|
|
341
323
|
* **index_document_suffix**: Set the index document of a S3 website.
|
|
324
|
+
* **default_text_charset**: Set the default character set to append to the content-type of text files you are uploading.
|
|
342
325
|
|
|
343
326
|
#### File-specific `Cache-Control` and `Expires` headers
|
|
344
327
|
|
|
@@ -436,19 +419,21 @@ You first need to create an [Atlas account](https://atlas.hashicorp.com/account/
|
|
|
436
419
|
#### Options:
|
|
437
420
|
|
|
438
421
|
* **site**: Web App Name (if your app lives at myapp.azurewebsites.net, the name would be myapp).
|
|
422
|
+
* **slot**: Optional. Slot name if your app uses staging deployment. (e.g. if your slot lives at myapp-test.azurewebsites.net, the slot would be myapp-test).
|
|
439
423
|
* **username**: Web App Deployment Username.
|
|
440
424
|
* **password**: Web App Deployment Password.
|
|
441
|
-
* **
|
|
425
|
+
* **verbose**: If passed, Azure's deployment output will be printed. Warning: If you provide incorrect credentials, Git will print those in clear text. Correct authentication credentials will remain hidden.
|
|
442
426
|
|
|
443
427
|
#### Environment variables:
|
|
444
428
|
|
|
445
429
|
* **AZURE_WA_SITE** Web App Name. Used if the `site` option is omitted.
|
|
430
|
+
* **AZURE_WA_SLOT** Optional. Slot name if your app uses staging deployment. Used if the `slot` option is omitted.
|
|
446
431
|
* **AZURE_WA_USERNAME**: Web App Deployment Username. Used if the `username` option is omitted.
|
|
447
432
|
* **AZURE_WA_PASSWORD**: Web App Deployment Password. Used if the `password` option is omitted.
|
|
448
433
|
|
|
449
434
|
#### Examples:
|
|
450
435
|
|
|
451
|
-
dpl --provider=AzureWebApps --username=depluser --password=deplp@ss --site=dplsite
|
|
436
|
+
dpl --provider=AzureWebApps --username=depluser --password=deplp@ss --site=dplsite --slot=dplsite-test --verbose
|
|
452
437
|
|
|
453
438
|
### Divshot.io:
|
|
454
439
|
|
|
@@ -477,19 +462,6 @@ You first need to create an [Atlas account](https://atlas.hashicorp.com/account/
|
|
|
477
462
|
|
|
478
463
|
dpl --provider=cloudfoundry --username=<username> --password=<password> --organization=<organization> --api=<api> --space=<space> --skip-ssl-validation
|
|
479
464
|
|
|
480
|
-
### dotCloud:
|
|
481
|
-
|
|
482
|
-
#### Options:
|
|
483
|
-
|
|
484
|
-
* **api_key**: dotCloud api key.
|
|
485
|
-
* **app**: dotcloud app.
|
|
486
|
-
* **service**: dotcloud service to run commands on. Defaults to 'www'.
|
|
487
|
-
|
|
488
|
-
#### Examples:
|
|
489
|
-
|
|
490
|
-
dpl --provider=dotcloud --api_key=<api_key> --app=<app>
|
|
491
|
-
dpl --provider=dotcloud --api_key=<api_key> --app=<app> --service=<service>
|
|
492
|
-
|
|
493
465
|
### Rackspace Cloud Files:
|
|
494
466
|
|
|
495
467
|
#### Options:
|
|
@@ -514,8 +486,12 @@ You first need to create an [Atlas account](https://atlas.hashicorp.com/account/
|
|
|
514
486
|
* **repo**: GitHub Repo. Defaults to git repo's name.
|
|
515
487
|
* **file**: File to upload to GitHub Release.
|
|
516
488
|
* **file_glob**: If files should be interpreted as globs (\* and \*\* wildcards). Defaults to false.
|
|
489
|
+
* **overwrite**: If files with the same name should be overwritten. Defaults to false.
|
|
517
490
|
* **release-number**: Overide automatic release detection, set a release manually.
|
|
518
491
|
|
|
492
|
+
Additionally, options can be passed to [Octokit](https://github.com/octokit/octokit.rb) client.
|
|
493
|
+
These are documented in https://github.com/octokit/octokit.rb/blob/master/lib/octokit/client/releases.rb.
|
|
494
|
+
|
|
519
495
|
#### GitHub Two Factor Authentication
|
|
520
496
|
|
|
521
497
|
For accounts using two factor authentication, you have to use an oauth token as a username and password will not work.
|
|
@@ -590,9 +566,10 @@ For accounts using two factor authentication, you have to use an oauth token as
|
|
|
590
566
|
* **region**: AWS Region the Elastic Beanstalk app is running in. Defaults to 'us-east-1'. Please be aware that this must match the region of the elastic beanstalk app.
|
|
591
567
|
* **app**: Elastic Beanstalk application name.
|
|
592
568
|
* **env**: Elastic Beanstalk environment name which will be updated.
|
|
593
|
-
* **
|
|
569
|
+
* **zip_file**: The zip file that you want to deploy. _**Note:**_ you also need to use the `skip_cleanup` or the zip file you are trying to upload will be removed during cleanup.
|
|
594
570
|
* **bucket_name**: Bucket name to upload app to.
|
|
595
571
|
* **bucket_path**: Location within Bucket to upload app to.
|
|
572
|
+
* **only_create_app_version**: only create the app version, don't actually deploy it.
|
|
596
573
|
|
|
597
574
|
#### Environment variables:
|
|
598
575
|
|
|
@@ -608,7 +585,7 @@ For accounts using two factor authentication, you have to use an oauth token as
|
|
|
608
585
|
|
|
609
586
|
#### Options:
|
|
610
587
|
|
|
611
|
-
* **access_token**:
|
|
588
|
+
* **access_token**: Optional. The access_token which can be found in the `.bitballoon` file after a deployment using the bitballoon CLI. Only required if no `.bitballoon` file is present.
|
|
612
589
|
* **site_id**: Optional. The site_id which can be found in the .bitballoon file after a deployment using the bitballoon CLI. Only required if no `.bitballoon` file is present.
|
|
613
590
|
* **local_dir**: Optional. The sub-directory of the built assets for deployment. Default to current path.
|
|
614
591
|
|
|
@@ -669,6 +646,7 @@ For accounts using two factor authentication, you have to use an oauth token as
|
|
|
669
646
|
* **description**: Optional. The description of the Lambda being created / updated. Defaults to "Deploy build #{context.env['TRAVIS_BUILD_NUMBER']} to AWS Lambda via Travis CI"
|
|
670
647
|
* **timeout**: Optional. The function execution time at which Lambda should terminate the function. Defaults to 3 (seconds).
|
|
671
648
|
* **memory_size**: Optional. The amount of memory in MB to allocate to this Lambda. Defaults to 128.
|
|
649
|
+
* **runtime**: Optional. The Lambda runtime to use. Defaults to `node`.
|
|
672
650
|
|
|
673
651
|
#### Examples:
|
|
674
652
|
|
|
@@ -693,6 +671,24 @@ Deploy contents of a specific directory using specific module name:
|
|
|
693
671
|
--handler_name="handler";
|
|
694
672
|
```
|
|
695
673
|
|
|
674
|
+
### Launchpad:
|
|
675
|
+
|
|
676
|
+
#### Options:
|
|
677
|
+
|
|
678
|
+
* **slug**: Required. `~user-name/project-name/branch-name`
|
|
679
|
+
* **oauth_token**: Required. Your OAUTH token for Launchpad
|
|
680
|
+
* **oauth_token_secret**: Required. Your OAUTH token secret for Launchpad
|
|
681
|
+
|
|
682
|
+
#### Example:
|
|
683
|
+
|
|
684
|
+
Deploy contents of current working directory using default module:
|
|
685
|
+
```
|
|
686
|
+
dpl --provider="launchpad" \
|
|
687
|
+
--slug="~user-name/project-name/branch-name" \
|
|
688
|
+
--oauth_token="${LAUNCHPAD_OAUTH_TOKEN}" \
|
|
689
|
+
--oauth_token_secret="${LAUNCHPAD_OAUTH_TOKEN_SECRET}";
|
|
690
|
+
```
|
|
691
|
+
|
|
696
692
|
### TestFairy:
|
|
697
693
|
|
|
698
694
|
Your Android(apk)/iOS(ipa) file will be uploaded to TestFairy,
|
|
@@ -722,18 +718,6 @@ and your testers can start testing your app.
|
|
|
722
718
|
|
|
723
719
|
dpl --provider=testfairy --api-key=<api-key> --app-file="out/Sample.apk" --keystore-file="out/keystore" --storepass=<storepass> --alias=<alias>
|
|
724
720
|
|
|
725
|
-
### ExoScale:
|
|
726
|
-
|
|
727
|
-
#### Options:
|
|
728
|
-
|
|
729
|
-
* **email**: ExoScale email or Organization ID.
|
|
730
|
-
* **password**: ExoScale password.
|
|
731
|
-
* **deployment**: ExoScale Deployment. Follows the format "APP_NAME/DEP_NAME".
|
|
732
|
-
|
|
733
|
-
#### Examples:
|
|
734
|
-
|
|
735
|
-
dpl --provider=exoscale --email=<email> --password<password> --deployment=`APP_NAME/DEP_NAME`
|
|
736
|
-
|
|
737
721
|
### AWS CodeDeploy:
|
|
738
722
|
|
|
739
723
|
#### Options:
|
|
@@ -757,6 +741,34 @@ and your testers can start testing your app.
|
|
|
757
741
|
|
|
758
742
|
dpl --provider=codedeploy --access-key-id=<aws access key> --secret_access_key=<aws secret access key> --application=<application name> --deployment_group=<deployment group> --revision_type=<s3/github> --commit_id=<commit ID> --repository=<repo name> --region=<AWS availability zone> --wait-until-deployed=<true>
|
|
759
743
|
|
|
744
|
+
### Scalingo:
|
|
745
|
+
|
|
746
|
+
#### Options:
|
|
747
|
+
* **api_key**: scalingo API Key. Not necessary if username and password are used.
|
|
748
|
+
* **username**: scalingo username. Not necessary if api_key is used.
|
|
749
|
+
* **password**: scalingo password. Not necessary if api_key is used.
|
|
750
|
+
* **remote**: Remote url or git remote name of your git repository. By default remote name is "scalingo".
|
|
751
|
+
* **branch**: Branch of your git repository. By default branch name is "master".
|
|
752
|
+
* **app**: Only necessary if your repository does not contain the appropriate remote. Specifying the app will add a remote to your local repository: `git remote add <remote> git@scalingo.com:<app>.git`
|
|
753
|
+
|
|
754
|
+
#### Use:
|
|
755
|
+
|
|
756
|
+
You can connect to Scalingo using your username/password or your api key.
|
|
757
|
+
It needs [Scalingo CLI](http://cli.scalingo.com/) which will be [downloaded here](http://cli.scalingo.com/).
|
|
758
|
+
Then, it will push your project to Scalingo and deploy it automatically.
|
|
759
|
+
|
|
760
|
+
Note: You only need to connect once to Scalingo CLI, credentials are stored locally.
|
|
761
|
+
|
|
762
|
+
#### Examples:
|
|
763
|
+
|
|
764
|
+
dpl --provider=scalingo --api_key="aaAAbbBB0011223344"
|
|
765
|
+
dpl --provider=scalingo --username=<username> --password=<password>
|
|
766
|
+
|
|
767
|
+
dpl --provider=scalingo --api_key="aaAAbbBB0011223344" --remote="scalingo-staging"
|
|
768
|
+
dpl --provider=scalingo --api_key="aaAAbbBB0011223344" --remote="scalingo-staging" --branch="master"
|
|
769
|
+
|
|
770
|
+
dpl --provider=scalingo
|
|
771
|
+
|
|
760
772
|
### Script:
|
|
761
773
|
|
|
762
774
|
An elementary provider that executes a single command.
|
|
@@ -775,6 +787,7 @@ Deployment will be marked a failure if the script exits with nonzero status.
|
|
|
775
787
|
|
|
776
788
|
Deploys to Google App Engine and Google App Engine Managed VMs via the Google Cloud SDK and
|
|
777
789
|
it's [`gcloud` tool](https://cloud.google.com/sdk/gcloud/) using a [Service Account](https://developers.google.com/console/help/new/#serviceaccounts).
|
|
790
|
+
In order to use this provider, please make sure you have the [App Engine Admin API](https://developers.google.com/apis-explorer/#p/appengine/v1beta4/) enabled [in the Google Developers Console](https://console.developers.google.com/project/_/apiui/apiview/appengine/overview).
|
|
778
791
|
|
|
779
792
|
#### Options:
|
|
780
793
|
|
|
@@ -782,9 +795,9 @@ it's [`gcloud` tool](https://cloud.google.com/sdk/gcloud/) using a [Service Acco
|
|
|
782
795
|
* **keyfile**: Path to the JSON file containing your [Service Account](https://developers.google.com/console/help/new/#serviceaccounts) credentials in [JSON Web Token](https://tools.ietf.org/html/rfc7519) format. To be obtained via the [Google Developers Console](https://console.developers.google.com/project/_/apiui/credential). Defaults to `"service-account.json"`. Note that this file should be handled with care as it contains authorization keys.
|
|
783
796
|
* **config**: Path to your module configuration file. Defaults to `"app.yaml"`. This file is runtime dependent ([Go](https://cloud.google.com/appengine/docs/go/config/appconfig), [Java](https://cloud.google.com/appengine/docs/java/configyaml/appconfig_yaml), [PHP](https://developers.google.com/console/help/new/#projectnumber), [Python](https://cloud.google.com/appengine/docs/python/config/appconfig))
|
|
784
797
|
* **version**: The version of the app that will be created or replaced by this deployment. If you do not specify a version, one will be generated for you. See [`gcloud preview app deploy`](https://cloud.google.com/sdk/gcloud/reference/preview/app/deploy)
|
|
785
|
-
* **
|
|
798
|
+
* **no_promote**: Flag to not promote the deployed version. See [`gcloud preview app deploy`](https://cloud.google.com/sdk/gcloud/reference/preview/app/deploy)
|
|
786
799
|
* **verbosity**: Let's you adjust the verbosity when invoking `"gcloud"`. Defaults to `"warning"`. See [`gcloud`](https://cloud.google.com/sdk/gcloud/reference/).
|
|
787
|
-
* **
|
|
800
|
+
* **no_stop_previous_version**: Flag to prevent your deployment from stopping the previously promoted version. This is from the future, so might not work (yet). See [`gcloud preview app deploy`](https://cloud.google.com/sdk/gcloud/reference/preview/app/deploy)
|
|
788
801
|
|
|
789
802
|
#### Environment variables:
|
|
790
803
|
|
|
@@ -793,4 +806,34 @@ it's [`gcloud` tool](https://cloud.google.com/sdk/gcloud/) using a [Service Acco
|
|
|
793
806
|
|
|
794
807
|
#### Example:
|
|
795
808
|
|
|
796
|
-
dpl --provider=gae --project=example --
|
|
809
|
+
dpl --provider=gae --project=example --no_promote=true
|
|
810
|
+
|
|
811
|
+
### Firebase:
|
|
812
|
+
|
|
813
|
+
#### Options:
|
|
814
|
+
|
|
815
|
+
* **token**: Your Firebase CI access token (generate with `firebase login:ci`)
|
|
816
|
+
* **project**: Deploy to a different Firebase project than specified in your `firebase.json` (e.g. `myapp-staging`)
|
|
817
|
+
|
|
818
|
+
#### Examples:
|
|
819
|
+
|
|
820
|
+
dpl --provider=firebase --token=<token> --project=<project>
|
|
821
|
+
|
|
822
|
+
|
|
823
|
+
|
|
824
|
+
### Surge.sh
|
|
825
|
+
|
|
826
|
+
#### Options:
|
|
827
|
+
|
|
828
|
+
* **project** Path to project folder relative to repo root. Defaults to repo root if not set.
|
|
829
|
+
* **domain** Domain to publish to. Can be omitted if domain is set in the `CNAME` file in the project folder.
|
|
830
|
+
|
|
831
|
+
|
|
832
|
+
#### Environment variables:
|
|
833
|
+
|
|
834
|
+
* **SURGE_LOGIN**: Set it to the email address you use with Surge
|
|
835
|
+
* **SURGE_TOKEN**: Set it to your login token (get it by doing a `surge token`)
|
|
836
|
+
|
|
837
|
+
#### Example:
|
|
838
|
+
dpl --provider=surge --project=<project-path> --domain=<domain-name>
|
|
839
|
+
|
data/TESTING.md
CHANGED
data/dpl.gemspec
CHANGED
|
@@ -19,7 +19,6 @@ Gem::Specification.new do |s|
|
|
|
19
19
|
s.add_development_dependency 'rspec', '~> 3.0.0'
|
|
20
20
|
s.add_development_dependency 'rspec-its'
|
|
21
21
|
s.add_development_dependency 'rake'
|
|
22
|
-
s.add_development_dependency 'simplecov'
|
|
23
22
|
s.add_development_dependency 'json', '1.8.1'
|
|
24
23
|
s.add_development_dependency 'coveralls'
|
|
25
24
|
|
|
@@ -4,8 +4,8 @@ module DPL
|
|
|
4
4
|
|
|
5
5
|
def check_auth
|
|
6
6
|
initial_go_tools_install
|
|
7
|
-
context.shell "cf api https://api.de.a9s.eu"
|
|
8
|
-
context.shell "cf login --u #{option(:username)} --p #{option(:password)} --o #{option(:organization)} --s #{option(:space)}"
|
|
7
|
+
context.shell "./cf api https://api.de.a9s.eu"
|
|
8
|
+
context.shell "./cf login --u #{option(:username)} --p #{option(:password)} --o #{option(:organization)} --s #{option(:space)}"
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
end
|
|
@@ -5,12 +5,13 @@ module DPL
|
|
|
5
5
|
{
|
|
6
6
|
"username" => options[:username] || context.env['AZURE_WA_USERNAME'],
|
|
7
7
|
"password" => options[:password] || context.env['AZURE_WA_PASSWORD'],
|
|
8
|
-
"site" => options[:site] || context.env['AZURE_WA_SITE']
|
|
8
|
+
"site" => options[:site] || context.env['AZURE_WA_SITE'],
|
|
9
|
+
"slot" => options[:slot] || context.env['AZURE_WA_SLOT']
|
|
9
10
|
}
|
|
10
11
|
end
|
|
11
12
|
|
|
12
13
|
def git_target
|
|
13
|
-
"https://#{config['username']}:#{config['password']}@#{config['site']}.scm.azurewebsites.net:443/#{config['site']}.git"
|
|
14
|
+
"https://#{config['username']}:#{config['password']}@#{config['slot'] || config['site']}.scm.azurewebsites.net:443/#{config['site']}.git"
|
|
14
15
|
end
|
|
15
16
|
|
|
16
17
|
def needs_key?
|
|
@@ -27,12 +28,19 @@ module DPL
|
|
|
27
28
|
end
|
|
28
29
|
|
|
29
30
|
def push_app
|
|
30
|
-
log "Deploying to Azure Web App '#{config['site']}'"
|
|
31
|
+
log "Deploying to Azure Web App '#{config['slot'] || config['site']}'"
|
|
31
32
|
|
|
32
|
-
if !!options[:
|
|
33
|
-
|
|
33
|
+
if !!options[:skip_cleanup]
|
|
34
|
+
log "Skipping Cleanup"
|
|
35
|
+
context.shell "git checkout HEAD"
|
|
36
|
+
context.shell "git add . --all --force"
|
|
37
|
+
context.shell "git commit -m \"Skip Cleanup Commit\""
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
if !!options[:verbose]
|
|
41
|
+
context.shell "git push --force --quiet #{git_target} HEAD:master"
|
|
34
42
|
else
|
|
35
|
-
context.shell "git push --force --quiet #{git_target} master"
|
|
43
|
+
context.shell "git push --force --quiet #{git_target} HEAD:master > /dev/null 2>&1"
|
|
36
44
|
end
|
|
37
45
|
end
|
|
38
46
|
end
|
data/lib/dpl/provider/bintray.rb
CHANGED
|
@@ -88,7 +88,8 @@ module DPL
|
|
|
88
88
|
def put_file_request(local_file_path, upload_path, matrix_params)
|
|
89
89
|
url = URI.parse(self.url)
|
|
90
90
|
|
|
91
|
-
|
|
91
|
+
file = File.open(local_file_path, 'rb')
|
|
92
|
+
data = file.read()
|
|
92
93
|
http = Net::HTTP.new(url.host, url.port)
|
|
93
94
|
http.use_ssl = true
|
|
94
95
|
|
|
@@ -149,6 +150,7 @@ module DPL
|
|
|
149
150
|
if code == 201 || code == 200
|
|
150
151
|
return true
|
|
151
152
|
end
|
|
153
|
+
name = descriptor["package"]["name"]
|
|
152
154
|
abort("Unexpected HTTP response code #{code} returned from Bintray while checking if package '#{name}' exists. " +
|
|
153
155
|
"Response message: #{res.message}")
|
|
154
156
|
end
|
|
@@ -179,6 +181,7 @@ module DPL
|
|
|
179
181
|
if code == 201 || code == 200
|
|
180
182
|
return true
|
|
181
183
|
end
|
|
184
|
+
version_name = descriptor["version"]["name"]
|
|
182
185
|
abort("Unexpected HTTP response code #{code} returned from Bintray while checking if version '#{version_name}' exists. " +
|
|
183
186
|
"Response message: #{res.message}")
|
|
184
187
|
end
|
|
@@ -366,7 +369,7 @@ module DPL
|
|
|
366
369
|
def root_path(str)
|
|
367
370
|
index = str.index('(')
|
|
368
371
|
path = nil
|
|
369
|
-
if index.nil?
|
|
372
|
+
if index.nil? || str.start_with?('(')
|
|
370
373
|
path = str
|
|
371
374
|
else
|
|
372
375
|
path = str[0, index]
|
|
@@ -503,4 +506,4 @@ module DPL
|
|
|
503
506
|
end
|
|
504
507
|
end
|
|
505
508
|
end
|
|
506
|
-
end
|
|
509
|
+
end
|
data/lib/dpl/provider/boxfuse.rb
CHANGED
|
@@ -7,9 +7,9 @@ module DPL
|
|
|
7
7
|
@secret = options[:secret]
|
|
8
8
|
@configfile = options[:configfile]
|
|
9
9
|
@payload = options[:payload]
|
|
10
|
-
@
|
|
11
|
-
@version = options[:version]
|
|
10
|
+
@image = options[:image]
|
|
12
11
|
@env = options[:env]
|
|
12
|
+
@extra_args = options[:extra_args]
|
|
13
13
|
|
|
14
14
|
@param_user = ''
|
|
15
15
|
if @user.to_s != ''
|
|
@@ -31,24 +31,24 @@ module DPL
|
|
|
31
31
|
@param_payload = ' "' + @payload + '"'
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
-
@
|
|
35
|
-
if @
|
|
36
|
-
@
|
|
34
|
+
@param_image = ''
|
|
35
|
+
if @image.to_s != ''
|
|
36
|
+
@param_image = " -image=" + @image
|
|
37
37
|
end
|
|
38
38
|
|
|
39
|
-
@
|
|
40
|
-
if @version.to_s != ''
|
|
41
|
-
@param_version = " -version=" + @version
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
@param_env = ''
|
|
39
|
+
@param_env = ' -env=test'
|
|
45
40
|
if @env.to_s != ''
|
|
46
41
|
@param_env = " -env=" + @env
|
|
47
42
|
end
|
|
48
43
|
|
|
44
|
+
@param_extra_args = ''
|
|
45
|
+
if @extra_args.to_s != ''
|
|
46
|
+
@param_extra_args = " " + @extra_args
|
|
47
|
+
end
|
|
48
|
+
|
|
49
49
|
context.shell "curl -L https://files.boxfuse.com/com/boxfuse/client/boxfuse-commandline/latest/boxfuse-commandline-latest-linux-x64.tar.gz | tar xz"
|
|
50
50
|
|
|
51
|
-
@command = "boxfuse/boxfuse run" + @param_user + @param_secret + @param_configfile + @param_payload + @
|
|
51
|
+
@command = "boxfuse/boxfuse run" + @param_user + @param_secret + @param_configfile + @param_payload + @param_image + @param_env + @param_extra_args
|
|
52
52
|
context.fold("Deploying application") { context.shell @command }
|
|
53
53
|
end
|
|
54
54
|
|
|
@@ -3,7 +3,10 @@ require 'dpl/provider'
|
|
|
3
3
|
module DPL
|
|
4
4
|
class Provider
|
|
5
5
|
class CloudFiles < Provider
|
|
6
|
-
requires '
|
|
6
|
+
requires 'net-ssh', load: 'net/ssh', version: '~> 2.9.2' # Anything higher requires Ruby 2.x
|
|
7
|
+
requires 'mime-types', load: 'mime/types', version: '~> 2.6.2' # Anything higher requires Ruby 2.x
|
|
8
|
+
requires 'fog-google', load: 'fog/google', version: '< 0.1.1' # Anything higher requires Ruby 2.x
|
|
9
|
+
requires 'fog', version: '< 1.35.0' # Anything higher requires fog-google 0.1.1 and up, which, in turn, requires Ruby 2.x
|
|
7
10
|
experimental 'Rackspace Cloud Files'
|
|
8
11
|
|
|
9
12
|
def needs_key?
|
|
@@ -3,14 +3,13 @@ module DPL
|
|
|
3
3
|
class CloudFoundry < Provider
|
|
4
4
|
|
|
5
5
|
def initial_go_tools_install
|
|
6
|
-
context.shell 'wget
|
|
7
|
-
context.shell 'rm temp.deb'
|
|
6
|
+
context.shell 'wget \'https://cli.run.pivotal.io/stable?release=linux64-binary&source=github\' -qO cf-linux-amd64.tgz && tar -zxvf cf-linux-amd64.tgz && rm cf-linux-amd64.tgz'
|
|
8
7
|
end
|
|
9
8
|
|
|
10
9
|
def check_auth
|
|
11
10
|
initial_go_tools_install
|
|
12
|
-
context.shell "cf api #{option(:api)} #{'--skip-ssl-validation' if options[:skip_ssl_validation]}"
|
|
13
|
-
context.shell "cf login --u #{option(:username)} --p #{option(:password)} --o #{option(:organization)} --s #{option(:space)}"
|
|
11
|
+
context.shell "./cf api #{option(:api)} #{'--skip-ssl-validation' if options[:skip_ssl_validation]}"
|
|
12
|
+
context.shell "./cf login --u #{option(:username)} --p #{option(:password)} --o #{option(:organization)} --s #{option(:space)}"
|
|
14
13
|
end
|
|
15
14
|
|
|
16
15
|
def check_app
|
|
@@ -24,8 +23,8 @@ module DPL
|
|
|
24
23
|
end
|
|
25
24
|
|
|
26
25
|
def push_app
|
|
27
|
-
context.shell "cf push#{manifest}"
|
|
28
|
-
context.shell "cf logout"
|
|
26
|
+
context.shell "./cf push#{manifest}"
|
|
27
|
+
context.shell "./cf logout"
|
|
29
28
|
end
|
|
30
29
|
|
|
31
30
|
def cleanup
|