dpl 1.10.17.travis.6637.6 → 2.0.0.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (140) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +74 -0
  3. data/CONTRIBUTING.md +392 -0
  4. data/Gemfile +17 -3
  5. data/Gemfile.lock +373 -0
  6. data/LICENSE +16 -19
  7. data/NOTES.md +275 -0
  8. data/README.md +1977 -707
  9. data/Rakefile +2 -2
  10. data/bin/dpl +7 -3
  11. data/lib/dpl.rb +20 -0
  12. data/lib/dpl/assets/atlas/install +19 -0
  13. data/lib/dpl/assets/dpl/README.erb.md +133 -0
  14. data/lib/dpl/assets/dpl/git_ssh +2 -0
  15. data/lib/dpl/assets/git/detect_private_key +8 -0
  16. data/lib/dpl/assets/hephy/filter_log +3 -0
  17. data/lib/dpl/assets/pypi/install +4 -0
  18. data/lib/dpl/assets/scalingo/install +6 -0
  19. data/lib/dpl/cli.rb +36 -48
  20. data/lib/dpl/ctx.rb +2 -0
  21. data/lib/dpl/ctx/bash.rb +543 -0
  22. data/lib/dpl/ctx/test.rb +242 -0
  23. data/lib/dpl/helper/assets.rb +36 -0
  24. data/lib/dpl/helper/cmd.rb +167 -0
  25. data/lib/dpl/helper/config_file.rb +47 -0
  26. data/lib/dpl/helper/env.rb +39 -0
  27. data/lib/dpl/helper/interpolate.rb +126 -0
  28. data/lib/dpl/helper/memoize.rb +20 -0
  29. data/lib/dpl/helper/squiggle.rb +22 -0
  30. data/lib/dpl/helper/zip.rb +69 -0
  31. data/lib/dpl/provider.rb +562 -234
  32. data/lib/dpl/provider/dsl.rb +369 -0
  33. data/lib/dpl/provider/examples.rb +128 -0
  34. data/lib/dpl/provider/status.rb +59 -0
  35. data/lib/dpl/providers.rb +40 -0
  36. data/lib/dpl/providers/anynines.rb +65 -0
  37. data/lib/dpl/providers/atlas.rb +49 -0
  38. data/lib/dpl/providers/azure_web_apps.rb +59 -0
  39. data/lib/dpl/providers/bintray.rb +313 -0
  40. data/lib/dpl/providers/bluemixcloudfoundry.rb +92 -0
  41. data/lib/dpl/providers/boxfuse.rb +48 -0
  42. data/lib/dpl/providers/cargo.rb +19 -0
  43. data/lib/dpl/providers/chef_supermarket.rb +128 -0
  44. data/lib/dpl/providers/cloud66.rb +40 -0
  45. data/lib/dpl/providers/cloudfiles.rb +56 -0
  46. data/lib/dpl/providers/cloudfoundry.rb +81 -0
  47. data/lib/dpl/providers/codedeploy.rb +179 -0
  48. data/lib/dpl/providers/datica.rb +60 -0
  49. data/lib/dpl/providers/elasticbeanstalk.rb +195 -0
  50. data/lib/dpl/providers/engineyard.rb +107 -0
  51. data/lib/dpl/providers/firebase.rb +41 -0
  52. data/lib/dpl/providers/gae.rb +74 -0
  53. data/lib/dpl/providers/gcs.rb +105 -0
  54. data/lib/dpl/providers/hackage.rb +47 -0
  55. data/lib/dpl/providers/hephy.rb +101 -0
  56. data/lib/dpl/providers/heroku.rb +111 -0
  57. data/lib/dpl/providers/heroku/api.rb +119 -0
  58. data/lib/dpl/providers/heroku/git.rb +50 -0
  59. data/lib/dpl/providers/lambda.rb +202 -0
  60. data/lib/dpl/providers/launchpad.rb +74 -0
  61. data/lib/dpl/providers/netlify.rb +30 -0
  62. data/lib/dpl/providers/npm.rb +88 -0
  63. data/lib/dpl/providers/openshift.rb +46 -0
  64. data/lib/dpl/providers/opsworks.rb +142 -0
  65. data/lib/dpl/providers/packagecloud.rb +190 -0
  66. data/lib/dpl/providers/pages.rb +17 -0
  67. data/lib/dpl/providers/pages/api.rb +102 -0
  68. data/lib/dpl/providers/pages/git.rb +251 -0
  69. data/lib/dpl/providers/puppetforge.rb +44 -0
  70. data/lib/dpl/providers/pypi.rb +120 -0
  71. data/lib/dpl/providers/releases.rb +214 -0
  72. data/lib/dpl/providers/rubygems.rb +89 -0
  73. data/lib/dpl/providers/s3.rb +243 -0
  74. data/lib/dpl/providers/scalingo.rb +63 -0
  75. data/lib/dpl/providers/script.rb +28 -0
  76. data/lib/dpl/providers/snap.rb +59 -0
  77. data/lib/dpl/providers/surge.rb +55 -0
  78. data/lib/dpl/providers/testfairy.rb +93 -0
  79. data/lib/dpl/providers/transifex.rb +66 -0
  80. data/lib/dpl/support/aws_sdk_patch.rb +23 -0
  81. data/lib/dpl/support/gems.rb +69 -0
  82. data/lib/dpl/support/gstore_patch.rb +6 -0
  83. data/lib/dpl/support/version.rb +83 -0
  84. data/lib/dpl/version.rb +2 -2
  85. metadata +98 -169
  86. data/.coveralls.yml +0 -1
  87. data/.github/CONTRIBUTING.md +0 -173
  88. data/.github/stale.yml +0 -53
  89. data/.gitignore +0 -13
  90. data/.rspec +0 -2
  91. data/.travis.yml +0 -56
  92. data/dpl-anynines.gemspec +0 -3
  93. data/dpl-atlas.gemspec +0 -3
  94. data/dpl-azure_webapps.gemspec +0 -3
  95. data/dpl-bintray.gemspec +0 -3
  96. data/dpl-bitballoon.gemspec +0 -3
  97. data/dpl-bluemix_cloud_foundry.gemspec +0 -3
  98. data/dpl-boxfuse.gemspec +0 -3
  99. data/dpl-cargo.gemspec +0 -3
  100. data/dpl-catalyze.gemspec +0 -3
  101. data/dpl-chef_supermarket.gemspec +0 -20
  102. data/dpl-cloud66.gemspec +0 -3
  103. data/dpl-cloud_files.gemspec +0 -3
  104. data/dpl-cloud_foundry.gemspec +0 -3
  105. data/dpl-code_deploy.gemspec +0 -3
  106. data/dpl-deis.gemspec +0 -3
  107. data/dpl-elastic_beanstalk.gemspec +0 -3
  108. data/dpl-engine_yard.gemspec +0 -3
  109. data/dpl-firebase.gemspec +0 -3
  110. data/dpl-gae.gemspec +0 -3
  111. data/dpl-gcs.gemspec +0 -3
  112. data/dpl-hackage.gemspec +0 -3
  113. data/dpl-hephy.gemspec +0 -3
  114. data/dpl-heroku.gemspec +0 -3
  115. data/dpl-lambda.gemspec +0 -3
  116. data/dpl-launchpad.gemspec +0 -3
  117. data/dpl-npm.gemspec +0 -3
  118. data/dpl-openshift.gemspec +0 -3
  119. data/dpl-ops_works.gemspec +0 -3
  120. data/dpl-packagecloud.gemspec +0 -3
  121. data/dpl-pages.gemspec +0 -3
  122. data/dpl-puppet_forge.gemspec +0 -3
  123. data/dpl-pypi.gemspec +0 -3
  124. data/dpl-releases.gemspec +0 -8
  125. data/dpl-rubygems.gemspec +0 -3
  126. data/dpl-s3.gemspec +0 -3
  127. data/dpl-scalingo.gemspec +0 -3
  128. data/dpl-script.gemspec +0 -3
  129. data/dpl-snap.gemspec +0 -3
  130. data/dpl-surge.gemspec +0 -3
  131. data/dpl-testfairy.gemspec +0 -3
  132. data/dpl-transifex.gemspec +0 -3
  133. data/dpl.gemspec +0 -3
  134. data/gemspec_helper.rb +0 -51
  135. data/lib/dpl/error.rb +0 -3
  136. data/notes/engine_yard.md +0 -1
  137. data/notes/heroku.md +0 -3
  138. data/spec/cli_spec.rb +0 -36
  139. data/spec/provider_spec.rb +0 -191
  140. data/spec/spec_helper.rb +0 -20
data/README.md CHANGED
@@ -1,968 +1,2238 @@
1
- # Dpl [![Build Status](https://travis-ci.org/travis-ci/dpl.svg?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) [![Gem Version](https://badge.fury.io/rb/dpl.png)](http://badge.fury.io/rb/dpl) [![Coverage Status](https://coveralls.io/repos/travis-ci/dpl/badge.svg?branch=master&service=github)](https://coveralls.io/github/travis-ci/dpl?branch=master)
1
+ # Dpl [![Build Status](https://travis-ci.com/travis-ci/dpl.svg?branch=master)](https://travis-ci.com/travis-ci/dpl) [![Code Climate](https://codeclimate.com/github/travis-ci/dpl.png)](https://codeclimate.com/github/travis-ci/dpl) [![Coverage Status](https://coveralls.io/repos/travis-ci/dpl/badge.svg?branch=master&service=github&cache=2019-08-09_17:00)](https://coveralls.io/github/travis-ci/dpl?branch=master) [![Gem Version](https://img.shields.io/gem/v/dpl)](http://rubygems.org/gems/dpl) [![Yard Docs](http://img.shields.io/badge/yard-docs-blue.svg)](http://rubydoc.info/github/travis-ci/dpl)
2
2
 
3
- ## Writing and Testing a New Deployment Provider and new functionality
3
+ This version of the README documents dpl v2, the next major version of dpl.
4
+ The REAMDE for dpl v1, the version that is currently used in production on
5
+ Travis CI can be found [here](https://github.com/travis-ci/dpl/blob/v1/README.md).
4
6
 
5
- See [CONTRIBUTING.md](.github/CONTRIBUTING.md).
7
+ Dpl is command line tool for deploying code, html, packages, or build artifacts
8
+ to various service providers.
9
+
10
+ It is tightly integrated into Travis CI's [deployment integration](https://docs.travis-ci.com/user/deployment),
11
+ but also used, and recommended by others, such as [GitLab](https://docs.gitlab.com/ee/ci/examples/deployment/).
12
+
13
+ It is maintained by Travis CI, largely community driven, and it has existed
14
+ since 2013. If you find support your preferred deployment target missing,
15
+ please do not hesitate to get in touch, and we'll help you [add it](#contributing-to-dpl).
16
+
17
+ ## Table of Contents
18
+
19
+ * [Requirements](#requirements)
20
+ * [Installation](#installation)
21
+ * [Usage](#usage)
22
+ * [Maturity Levels](#maturity-levels)
23
+ * [Supported Providers](#supported-providers)
24
+ * [Contributing to Dpl](#contributing-to-dpl)
25
+ * [Old Issues](#old-issues)
26
+ * [Code of Conduct](#code-of-conduct)
27
+ * [License](#license)
28
+ * [Credits](#credits)
29
+
30
+ ## Requirements
31
+
32
+ Dpl requires Ruby 2.2 or later.
33
+
34
+ Depending on the deployment target dpl might require additional runtimes (e.g.
35
+ Go, Node.js, or Python) to be installed. It also might require sudo access in
36
+ order to install a Debian package.
37
+
38
+ Dpl is generally optimized for usage on Linux systems.
39
+
40
+ ## Installation
41
+
42
+ Installation:
43
+
44
+ ```
45
+ gem install dpl
46
+ ```
47
+
48
+ ## Usage
49
+
50
+ Dpl is meant and optimized for usage in ephemeral build environments, such
51
+ as Travis CI, or any other CI/CD pipeline.
52
+
53
+ Dpl is integrated to Travis CI's build configuration and build script compilation
54
+ tooling, so all you need to do is add the proper configuration to your `.travis.yml`
55
+ file. Please refer to [the documentation](https://docs.travis-ci.com/user/deployment)
56
+ for details.
57
+
58
+ For usage outside of Travis CI dpl can be executed as follows. Please refer to
59
+ the respective [providers](#supported-providers) for details.
60
+
61
+ ```
62
+ dpl [provider] [options]
63
+ ```
64
+
65
+ Dpl can be used locally, e.g. on your development machine, but it might leave
66
+ artifacts that may alter the behaviour of your system. If you encounter this
67
+ behaviour and it presents a serious issue to you then please open an
68
+ [issue](https://github.com/travis-ci/dpl/issues/new).
69
+
70
+ ### Cleaning up the Git working directory
71
+
72
+ Dpl v1 has cleaned up the Git working directory by default, using `git stash
73
+ --all`. The default for this option has been changed in dpl v2, and users now
74
+ need to opt in to cleaning up any left over artifacts from the build process
75
+ by passing the option `--cleanup`.
76
+
77
+ The status of the working directory is relevant only to providers that package
78
+ and push it to the respective remote service (e.g. `heroku` when using the
79
+ `api` strategy, package registry providers, etc.). Most providers will either
80
+ push the latest Git commit, or pull code from a remote repository.
81
+
82
+ ## Maturity Levels
83
+
84
+ In order to communicate the current development status and maturity of dpl's
85
+ support for a particular service the respective provider is marked with one of
86
+ the following maturity levels, according to the given criteria:
87
+
88
+ * `dev` - the provider is in development (initial level)
89
+ * `alpha` - the provider is fully tested
90
+ * `beta` - the provider has been in alpha for at least a month, and successful real-world production deployments have been observed
91
+ * `stable` - the provider has been in beta for at least two months, and there are no open issues that qualify as critical (such as deployments failing, documented functionality broken, etc)
92
+
93
+ ## Supported Providers
6
94
 
7
- ## Supported Providers:
8
95
  Dpl supports the following providers:
9
96
 
10
- * [Anynines](#anynines)
11
- * [Atlas by HashiCorp](#atlas)
12
- * [AWS CodeDeploy](#aws-codedeploy)
13
- * [AWS Elastic Beanstalk](#elastic-beanstalk)
14
- * [AWS OpsWorks](#opsworks)
15
- * [AWS S3](#s3)
16
- * [Azure Web Apps](#azure-web-apps)
17
- * [Bintray](#bintray)
18
- * [BitBalloon](#bitballoon)
19
- * [Bluemix Cloud Foundry](#bluemix-cloud-foundry)
20
- * [Boxfuse](#boxfuse)
21
- * [cargo](#cargo)
22
- * [Catalyze](#catalyze)
23
- * [Chef Supermarket](#chef-supermarket)
24
- * [Cloud 66](#cloud-66)
25
- * [Cloud Foundry](#cloud-foundry)
26
- * [Deis](#deis)
27
- * [Engine Yard](#engine-yard)
28
- * [Firebase](#firebase)
29
- * [Github Pages](#github-pages)
30
- * [Github Releases](#github-releases)
31
- * [Google App Engine (experimental)](#google-app-engine)
32
- * [Google Cloud Storage](#google-cloud-storage)
33
- * [Hackage](#hackage)
34
- * [Hephy](#hephy)
35
- * [Heroku](#heroku)
36
- * [Lambda](#lambda)
37
- * [Launchpad](#launchpad)
38
- * [Nodejitsu](#nodejitsu)
39
- * [npm](#npm)
40
- * [OpenShift](#openshift)
41
- * [packagecloud](#packagecloud)
42
- * [Puppet Forge](#puppet-forge)
43
- * [PyPi](#pypi)
44
- * [Rackspace Cloud Files](#rackspace-cloud-files)
45
- * [RubyGems](#rubygems)
46
- * [Scalingo](#scalingo)
47
- * [Script](#script)
48
- * [Snap](#snap)
49
- * [Surge.sh](#surgesh)
50
- * [TestFairy](#testfairy)
51
-
52
- ## Installation:
53
-
54
- Dpl is published to rubygems.
55
-
56
- * Dpl requires ruby 2.2 and later.
57
- * To install: `gem install dpl`
58
-
59
- ## Usage:
60
-
61
- ### Security Warning:
62
-
63
- Running dpl in a terminal that saves history is insecure as your password/api key will be saved as plain text by it.
64
-
65
- ### Global Flags
66
- * `--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.
67
- * 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.
68
-
69
- ### Heroku:
70
-
71
- #### Options:
72
- * **api-key**: Heroku API Key
73
- * **strategy**: Deployment strategy for Dpl. Defaults to `api`. The other option is `git`.
74
- * **app**: Heroku app name. Defaults to the name of your git repo.
75
- * **username**: heroku username. Not necessary if api-key is used. Requires git strategy.
76
- * **password**: heroku password. Not necessary if api-key is used. Requires git strategy.
77
-
78
- #### API vs Git Deploy:
79
- * API deploy will tar up the current directory (minus the git repo) and send it to Heroku.
80
- * Git deploy will send the contents of the git repo only, so may not contain any local changes.
81
- * The Git strategy allows using *user* and *password* instead of *api-key*.
82
- * When using Git, Heroku might send you an email for every deploy, as it adds a temporary SSH key to your account.
83
-
84
- #### Examples:
85
-
86
- dpl --provider=heroku --api-key=`heroku auth:token`
87
- dpl --provider=heroku --strategy=git --username=<username> --password=<password> --app=<application>
88
-
89
-
90
- ### Bintray:
91
-
92
- #### Options:
93
-
94
- * **file**: Path to a descriptor file, containing information for the Bintray upload.
95
- * **user**: Bintray user
96
- * **key**: Bintray API key
97
- * **passphrase**: Optional. In case a passphrase is configured on Bintray and GPG signing is used.
98
- * **dry-run**: Optional. If set to true, skips sending requests to Bintray. Useful for testing your configuration.
99
-
100
- #### Descriptor file example:
101
- ```groovy
102
- {
103
- /* Bintray package information.
104
- In case the package already exists on Bintray, only the name, repo and subject
105
- fields are mandatory. */
106
-
107
- "package": {
108
- "name": "auto-upload", // Bintray package name
109
- "repo": "myRepo", // Bintray repository name
110
- "subject": "myBintrayUser", // Bintray subject (user or organization)
111
- "desc": "I was pushed completely automatically",
112
- "website_url": "www.jfrog.com",
113
- "issue_tracker_url": "https://github.com/bintray/bintray-client-java/issues",
114
- "vcs_url": "https://github.com/bintray/bintray-client-java.git",
115
- "github_use_tag_release_notes": true,
116
- "github_release_notes_file": "RELEASE.txt",
117
- "licenses": ["MIT"],
118
- "labels": ["cool", "awesome", "gorilla"],
119
- "public_download_numbers": false,
120
- "public_stats": false,
121
- "attributes": [{"name": "att1", "values" : ["val1"], "type": "string"},
122
- {"name": "att2", "values" : [1, 2.2, 4], "type": "number"},
123
- {"name": "att5", "values" : ["2014-12-28T19:43:37+0100"], "type": "date"}]
124
- },
125
-
126
- /* Package version information.
127
- In case the version already exists on Bintray, only the name fields is mandatory. */
128
-
129
- "version": {
130
- "name": "0.5",
131
- "desc": "This is a version",
132
- "released": "2015-01-04",
133
- "vcs_tag": "0.5",
134
- "attributes": [{"name": "VerAtt1", "values" : ["VerVal1"], "type": "string"},
135
- {"name": "VerAtt2", "values" : [1, 3.2, 5], "type": "number"},
136
- {"name": "VerAtt3", "values" : ["2015-01-01T19:43:37+0100"], "type": "date"}],
137
- "gpgSign": false
138
- },
139
-
140
- /* Configure the files you would like to upload to Bintray and their upload path.
141
- You can define one or more groups of patterns.
142
- Each group contains three patterns:
143
-
144
- includePattern: Pattern in the form of Ruby regular expression, indicating the path of files to be uploaded to Bintray.
145
- excludePattern: Optional. Pattern in the form of Ruby regular expression, indicating the path of files to be removed from the list of files specified by the includePattern.
146
- uploadPattern: Upload path on Bintray. The path can contain symbols in the form of $1, $2,... that are replaced with capturing groups defined in the include pattern.
147
-
148
- In the example below, the following files are uploaded,
149
- 1. All gem files located under build/bin/ (including sub directories),
150
- except for files under a the do-not-deploy directory.
151
- The files will be uploaded to Bintray under the gems folder.
152
- 2. All files under build/docs. The files will be uploaded to Bintray under the docs folder.
153
-
154
- Note: Regular expressions defined as part of the includePattern property must be wrapped with brackets. */
155
-
156
- "files":
157
- [
158
- {"includePattern": "build/bin(.*)*/(.*\.gem)", "excludePattern": ".*/do-not-deploy/.*", "uploadPattern": "gems/$2"},
159
- {"includePattern": "build/docs/(.*)", "uploadPattern": "docs/$1"}
160
- ],
161
- "publish": true
162
- }
163
- ```
164
-
165
- #### Debian Upload
166
-
167
- When artifacts are uploaded to a Debian repository using the Automatic index layout, the Debian distribution information is required and must be specified. The information is specified in the descriptor file by the matrixParams as part of the files closure as shown in the following example:
168
- ```groovy
169
- "files":
170
- [{"includePattern": "build/bin/(.*\.deb)", "uploadPattern": "$1",
171
- "matrixParams": {
172
- "deb_distribution": "vivid",
173
- "deb_component": "main",
174
- "deb_architecture": "amd64"}
175
- }
176
- ]
177
- ```
178
-
179
- #### Examples:
180
- dpl --provider=bintray --file=<path> --user=<username> --key=<api-key>
181
- dpl --provider=bintray --file=<path> --user=<username> --key=<api-key> --passphrase=<passphrase>
97
+ * [Anynines](#anynines)
98
+ * [Atlas](#atlas)
99
+ * [AWS Code Deploy](#aws-code-deploy)
100
+ * [AWS Elastic Beanstalk](#aws-elastic-beanstalk)
101
+ * [AWS Lambda](#aws-lambda)
102
+ * [AWS OpsWorks](#aws-opsworks)
103
+ * [AWS S3](#aws-s3)
104
+ * [Azure Web Apps](#azure-web-apps)
105
+ * [Bintray](#bintray)
106
+ * [Bluemix Cloud Foundry](#bluemix-cloud-foundry)
107
+ * [Boxfuse](#boxfuse)
108
+ * [Cargo](#cargo)
109
+ * [Chef Supermarket](#chef-supermarket)
110
+ * [Cloud Files](#cloud-files)
111
+ * [Cloud Foundry](#cloud-foundry)
112
+ * [Cloud66](#cloud66)
113
+ * [Datica](#datica)
114
+ * [Engineyard](#engineyard)
115
+ * [Firebase](#firebase)
116
+ * [GitHub Pages](#github-pages)
117
+ * [GitHub Releases](#github-releases)
118
+ * [Google App Engine](#google-app-engine)
119
+ * [Google Cloud Store](#google-cloud-store)
120
+ * [Hackage](#hackage)
121
+ * [Hephy](#hephy)
122
+ * [Heroku API](#heroku-api)
123
+ * [Heroku Git](#heroku-git)
124
+ * [Launchpad](#launchpad)
125
+ * [Netlify](#netlify)
126
+ * [npm](#npm)
127
+ * [OpenShift](#openshift)
128
+ * [Packagecloud](#packagecloud)
129
+ * [Puppet Forge](#puppet-forge)
130
+ * [PyPI](#pypi)
131
+ * [Rubygems](#rubygems)
132
+ * [Scalingo](#scalingo)
133
+ * [Script](#script)
134
+ * [Snap](#snap)
135
+ * [Surge](#surge)
136
+ * [TestFairy](#testfairy)
137
+ * [Transifex](#transifex)
138
+
139
+
140
+ ### Anynines
141
+
142
+ ```
143
+ Usage: dpl anynines [options]
144
+
145
+ Summary:
146
+
147
+ Anynines deployment provider
148
+
149
+ Description:
150
+
151
+ tbd
152
+
153
+ Support for deployments to Anynines is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
154
+
155
+ Options:
156
+
157
+ --username USER anynines username (type: string, required: true)
158
+ --password PASS anynines password (type: string, required: true)
159
+ --organization ORG anynines target organization (type: string, required: true)
160
+ --space SPACE anynines target space (type: string, required: true)
161
+ --app_name APP Application name (type: string)
162
+ --buildpack PACK Custom buildpack name or Git URL (type: string)
163
+ --manifest FILE Path to the manifest (type: string)
164
+
165
+ Common Options:
166
+
167
+ --run CMD Command to execute after the deployment finished successfully (type: array
168
+ (string, can be given multiple times))
169
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
170
+ --help Get help on this command
171
+
172
+ Examples:
173
+
174
+ dpl anynines --username user --password pass --organization org --space space
175
+ dpl anynines --username user --password pass --organization org --space space --app_name app
176
+ ```
177
+
178
+ ### Atlas
179
+
180
+ ```
181
+ Usage: dpl atlas [options]
182
+
183
+ Summary:
184
+
185
+ Atlas deployment provider
186
+
187
+ Description:
188
+
189
+ tbd
190
+
191
+ Support for deployments to Atlas is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
192
+
193
+ Options:
194
+
195
+ --app APP The Atlas application to upload to (type: string, required: true)
196
+ --token TOKEN The Atlas API token (type: string, required: true)
197
+ --paths PATH Files or directories to upload (type: array (string, can be given multiple
198
+ times), default: ["."])
199
+ --address ADDR The address of the Atlas server (type: string)
200
+ --include GLOB Glob pattern of files or directories to include (type: array (string, can be
201
+ given multiple times))
202
+ --exclude GLOB Glob pattern of files or directories to exclude (type: array (string, can be
203
+ given multiple times))
204
+ --metadata DATA Arbitrary key=value (string) metadata to be sent with the upload (type: array
205
+ (string, can be given multiple times))
206
+ --[no-]vcs Get lists of files to exclude and include from a VCS (Git, Mercurial or SVN)
207
+ --args ARGS Args to pass to the atlas-upload CLI (type: string)
208
+ --[no-]debug Turn on debug output
209
+
210
+ Common Options:
211
+
212
+ --run CMD Command to execute after the deployment finished successfully (type: array
213
+ (string, can be given multiple times))
214
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
215
+ --help Get help on this command
216
+
217
+ Examples:
218
+
219
+ dpl atlas --app app --token token
220
+ dpl atlas --app app --token token --paths path --address addr --include glob
221
+ ```
222
+
223
+ ### AWS Code Deploy
224
+
225
+ ```
226
+ Usage: dpl codedeploy [options]
227
+
228
+ Summary:
229
+
230
+ AWS Code Deploy deployment provider
231
+
232
+ Description:
233
+
234
+ tbd
182
235
 
236
+ Support for deployments to AWS Code Deploy is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
237
+
238
+ Options:
239
+
240
+ --access_key_id ID AWS access key (type: string, required: true)
241
+ --secret_access_key KEY AWS secret access key (type: string, required: true)
242
+ --application NAME CodeDeploy application name (type: string, required: true)
243
+ --deployment_group GROUP CodeDeploy deployment group name (type: string)
244
+ --revision_type TYPE CodeDeploy revision type (type: string, known values: s3, github, downcase:
245
+ true)
246
+ --commit_id SHA Commit ID in case of GitHub (type: string)
247
+ --repository NAME Repository name in case of GitHub (type: string)
248
+ --bucket NAME S3 bucket in case of S3 (type: string)
249
+ --region REGION AWS availability zone (type: string, default: us-east-1)
250
+ --file_exists_behavior STR How to handle files that already exist in a deployment target location (type:
251
+ string, default: disallow, known values: disallow, overwrite, retain)
252
+ --[no-]wait_until_deployed Wait until the deployment has finished
253
+ --bundle_type TYPE type: string
254
+ --endpoint ENDPOINT type: string
255
+ --key KEY type: string
256
+ --description DESCR type: string
257
+
258
+ Common Options:
259
+
260
+ --run CMD Command to execute after the deployment finished successfully (type: array
261
+ (string, can be given multiple times))
262
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
263
+ --help Get help on this command
264
+
265
+ Examples:
266
+
267
+ dpl codedeploy --access_key_id id --secret_access_key key --application name
268
+ dpl codedeploy --access_key_id id --secret_access_key key --application name --deployment_group group --revision_type s3
269
+ ```
270
+
271
+ ### AWS Elastic Beanstalk
272
+
273
+ ```
274
+ Usage: dpl elasticbeanstalk [options]
275
+
276
+ Summary:
277
+
278
+ AWS Elastic Beanstalk deployment provider
279
+
280
+ Description:
281
+
282
+ tbd
283
+
284
+ Support for deployments to AWS Elastic Beanstalk is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
285
+
286
+ Options:
287
+
288
+ --access_key_id ID AWS Access Key ID (type: string, required: true)
289
+ --secret_access_key KEY AWS Secret Key (type: string, required: true)
290
+ --region REGION AWS Region the Elastic Beanstalk app is running in (type: string, default:
291
+ us-east-1)
292
+ --app NAME Elastic Beanstalk application name (type: string, default: repo name)
293
+ --env NAME Elastic Beanstalk environment name which will be updated (type: string,
294
+ required: true)
295
+ --bucket NAME Bucket name to upload app to (type: string, required: true, alias: bucket_name)
296
+ --bucket_path PATH Location within Bucket to upload app to (type: string)
297
+ --description DESC Description for the application version (type: string)
298
+ --label LABEL Label for the application version (type: string)
299
+ --zip_file PATH The zip file that you want to deploy (type: string)
300
+ --[no-]only_create_app_version Only create the app version, do not actually deploy it
301
+ --[no-]wait_until_deployed Wait until the deployment has finished
302
+
303
+ Common Options:
304
+
305
+ --run CMD Command to execute after the deployment finished successfully (type: array
306
+ (string, can be given multiple times))
307
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
308
+ --help Get help on this command
309
+
310
+ Examples:
311
+
312
+ dpl elasticbeanstalk --access_key_id id --secret_access_key key --env name --bucket name
313
+ dpl elasticbeanstalk --access_key_id id --secret_access_key key --env name --bucket name --region region
314
+ ```
315
+
316
+ ### AWS Lambda
317
+
318
+ ```
319
+ Usage: dpl lambda [options]
320
+
321
+ Summary:
322
+
323
+ AWS Lambda deployment provider
324
+
325
+ Description:
326
+
327
+ tbd
328
+
329
+ Support for deployments to AWS Lambda is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
330
+
331
+ Options:
332
+
333
+ --access_key_id ID AWS access key id (type: string, required: true)
334
+ --secret_access_key KEY AWS secret key (type: string, required: true)
335
+ --region REGION AWS region the Lambda function is running in (type: string, default: us-east-1)
336
+ --function_name FUNC Name of the Lambda being created or updated (type: string, required: true)
337
+ --role ROLE ARN of the IAM role to assign to the Lambda function (type: string, note:
338
+ required for creating a new function)
339
+ --handler_name NAME Function the Lambda calls to begin execution. (type: string, note: required for
340
+ creating a new function)
341
+ --module_name NAME Name of the module that exports the handler (type: string, requires:
342
+ handler_name, default: index)
343
+ --description DESCR Description of the Lambda being created or updated (type: string)
344
+ --timeout SECS Function execution time (in seconds) at which Lambda should terminate the
345
+ function (type: string, default: 3)
346
+ --memory_size MB Amount of memory in MB to allocate to this Lambda (type: string, default: 128)
347
+ --subnet_ids IDS List of subnet IDs to be added to the function (type: array (string, can be
348
+ given multiple times), note: Needs the ec2:DescribeSubnets and ec2:DescribeVpcs
349
+ permission for the user of the access/secret key to work)
350
+ --security_group_ids IDS List of security group IDs to be added to the function (type: array (string, can
351
+ be given multiple times), note: Needs the ec2:DescribeSecurityGroups and
352
+ ec2:DescribeVpcs permission for the user of the access/secret key to work)
353
+ --environment VARS List of Environment Variables to add to the function (type: array (string, can
354
+ be given multiple times), alias: environment_variables, format: /[\w\-]+=.+/,
355
+ note: Can be encrypted for added security)
356
+ --runtime NAME Lambda runtime to use (type: string, default: nodejs8.10, known values: java8,
357
+ nodejs8.10, nodejs10.x, python2.7, python3.6, python3.7, dotnetcore2.1, go1.x,
358
+ ruby2.5)
359
+ --dead_letter_arn ARN ARN to an SNS or SQS resource used for the dead letter queue. (type: string)
360
+ --kms_key_arn ARN KMS key ARN to use to encrypt environment_variables. (type: string)
361
+ --tracing_mode MODE Tracing mode (type: string, default: PassThrough, known values: Active,
362
+ PassThrough, note: Needs xray:PutTraceSegments xray:PutTelemetryRecords on the
363
+ role)
364
+ --layers LAYERS Function layer arns (type: array (string, can be given multiple times))
365
+ --function_tags TAGS List of tags to add to the function (type: array (string, can be given multiple
366
+ times), format: /[\w\-]+=.+/, note: Can be encrypted for added security)
367
+ --[no-]publish Create a new version of the code instead of replacing the existing one.
368
+ --zip PATH Path to a packaged Lambda, a directory to package, or a single file to package
369
+ (type: string, default: .)
370
+ --[no-]dot_match Include hidden .* files to the zipped archive
371
+
372
+ Common Options:
373
+
374
+ --run CMD Command to execute after the deployment finished successfully (type: array
375
+ (string, can be given multiple times))
376
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
377
+ --help Get help on this command
378
+
379
+ Examples:
380
+
381
+ dpl lambda --access_key_id id --secret_access_key key --function_name func
382
+ dpl lambda --access_key_id id --secret_access_key key --function_name func --region region --role role
383
+ ```
384
+
385
+ ### AWS OpsWorks
386
+
387
+ ```
388
+ Usage: dpl opsworks [options]
389
+
390
+ Summary:
391
+
392
+ AWS OpsWorks deployment provider
393
+
394
+ Description:
395
+
396
+ tbd
397
+
398
+ Support for deployments to AWS OpsWorks is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
399
+
400
+ Options:
401
+
402
+ --access_key_id ID AWS access key id (type: string, required: true)
403
+ --secret_access_key KEY AWS secret key (type: string, required: true)
404
+ --app_id APP The app id (type: string, required: true)
405
+ --region REGION AWS region (type: string, default: us-east-1)
406
+ --instance_ids ID An instance id (type: array (string, can be given multiple times))
407
+ --layer_ids ID A layer id (type: array (string, can be given multiple times))
408
+ --[no-]migrate Migrate the database.
409
+ --[no-]wait_until_deployed Wait until the app is deployed and return the deployment status.
410
+ --[no-]update_on_success When wait-until-deployed and updated-on-success are both not given, application
411
+ source is updated to the current SHA. Ignored when wait-until-deployed is not
412
+ given. (alias: update_app_on_success)
413
+ --custom_json JSON Custom json options override (overwrites default configuration) (type: string)
414
+
415
+ Common Options:
416
+
417
+ --run CMD Command to execute after the deployment finished successfully (type: array
418
+ (string, can be given multiple times))
419
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
420
+ --help Get help on this command
421
+
422
+ Examples:
423
+
424
+ dpl opsworks --access_key_id id --secret_access_key key --app_id app
425
+ dpl opsworks --access_key_id id --secret_access_key key --app_id app --region region --instance_ids id
426
+ ```
427
+
428
+ ### AWS S3
429
+
430
+ ```
431
+ Usage: dpl s3 [options]
432
+
433
+ Summary:
434
+
435
+ AWS S3 deployment provider
436
+
437
+ Description:
438
+
439
+ tbd
440
+
441
+ Support for deployments to AWS S3 is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
442
+
443
+ Options:
444
+
445
+ --access_key_id ID AWS access key id (type: string, required: true)
446
+ --secret_access_key KEY AWS secret key (type: string, required: true)
447
+ --bucket BUCKET S3 bucket (type: string, required: true)
448
+ --region REGION S3 region (type: string, default: us-east-1)
449
+ --endpoint URL S3 endpoint (type: string)
450
+ --upload_dir DIR S3 directory to upload to (type: string)
451
+ --storage_class CLASS S3 storage class to upload as (type: string, default: STANDARD, known values:
452
+ STANDARD, STANDARD_IA, REDUCED_REDUNDANCY)
453
+ --[no-]server_side_encryption Use S3 Server Side Encryption (SSE-AES256)
454
+ --local_dir DIR Local directory to upload from (type: string, default: ., e.g.: ~/travis/build
455
+ (absolute path) or ./build (relative path))
456
+ --[no-]detect_encoding HTTP header Content-Encoding for files compressed with gzip and compress
457
+ utilities
458
+ --cache_control STR HTTP header Cache-Control to suggest that the browser cache the file (type:
459
+ array (string, can be given multiple times), default: no-cache, known values:
460
+ /^no-cache.*/, /^no-store.*/, /^max-age=\d+.*/, /^s-maxage=\d+.*/,
461
+ /^no-transform/, /^public/, /^private/, note: accepts mapping values to globs)
462
+ --expires DATE Date and time that the cached object expires (type: array (string, can be given
463
+ multiple times), format: /^"?\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} .+"?.*$/, note:
464
+ accepts mapping values to globs)
465
+ --acl ACL Access control for the uploaded objects (type: string, default: private, known
466
+ values: private, public_read, public_read_write, authenticated_read,
467
+ bucket_owner_read, bucket_owner_full_control)
468
+ --[no-]dot_match Upload hidden files starting with a dot
469
+ --index_document_suffix SUFFIX Index document suffix of a S3 website (type: string)
470
+ --default_text_charset CHARSET Default character set to append to the content-type of text files (type: string)
471
+ --max_threads NUM The number of threads to use for S3 file uploads (type: integer, default: 5,
472
+ max: 15)
473
+ --[no-]overwrite Whether or not to overwrite existing files (default: true)
474
+ --[no-]verbose Be verbose about uploading files
475
+
476
+ Common Options:
477
+
478
+ --run CMD Command to execute after the deployment finished successfully (type: array
479
+ (string, can be given multiple times))
480
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
481
+ --help Get help on this command
482
+
483
+ Examples:
484
+
485
+ dpl s3 --access_key_id id --secret_access_key key --bucket bucket
486
+ dpl s3 --access_key_id id --secret_access_key key --bucket bucket --region region --endpoint url
487
+ ```
488
+
489
+ ### Azure Web Apps
490
+
491
+ ```
492
+ Usage: dpl azure_web_apps [options]
493
+
494
+ Summary:
495
+
496
+ Azure Web Apps deployment provider
497
+
498
+ Description:
499
+
500
+ tbd
501
+
502
+ Support for deployments to Azure Web Apps is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
503
+
504
+ Options:
505
+
506
+ --site SITE Web App name (e.g. myapp in myapp.azurewebsites.net) (type: string, required:
507
+ true)
508
+ --username NAME Web App Deployment Username (type: string, required: true)
509
+ --password PASS Web App Deployment Password (type: string, required: true)
510
+ --slot SLOT Slot name (if your app uses staging deployment) (type: string)
511
+ --[no-]verbose Print deployment output from Azure. Warning: If authentication fails, Git prints
512
+ credentials in clear text. Correct credentials remain hidden.
513
+
514
+ Common Options:
515
+
516
+ --run CMD Command to execute after the deployment finished successfully (type: array
517
+ (string, can be given multiple times))
518
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
519
+ --help Get help on this command
520
+
521
+ Examples:
522
+
523
+ dpl azure_web_apps --site site --username name --password pass
524
+ dpl azure_web_apps --site site --username name --password pass --slot slot --verbose
525
+ ```
526
+
527
+ ### Bintray
528
+
529
+ ```
530
+ Usage: dpl bintray [options]
531
+
532
+ Summary:
533
+
534
+ Bintray deployment provider
535
+
536
+ Description:
537
+
538
+ tbd
539
+
540
+ Support for deployments to Bintray is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
541
+
542
+ Options:
543
+
544
+ --user USER Bintray user (type: string, required: true)
545
+ --key KEY Bintray API key (type: string, required: true)
546
+ --file FILE Path to a descriptor file for the Bintray upload (type: string, required: true)
547
+ --passphrase PHRASE Passphrase as configured on Bintray (if GPG signing is used) (type: string)
548
+
549
+ Common Options:
550
+
551
+ --run CMD Command to execute after the deployment finished successfully (type: array
552
+ (string, can be given multiple times))
553
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
554
+ --help Get help on this command
555
+
556
+ Examples:
557
+
558
+ dpl bintray --user user --key key --file file
559
+ dpl bintray --user user --key key --file file --passphrase phrase --run cmd
560
+ ```
561
+
562
+ ### Bluemix Cloud Foundry
563
+
564
+ ```
565
+ Usage: dpl bluemixcloudfoundry [options]
566
+
567
+ Summary:
568
+
569
+ Bluemix Cloud Foundry deployment provider
570
+
571
+ Description:
572
+
573
+ tbd
574
+
575
+ Support for deployments to Bluemix Cloud Foundry is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
576
+
577
+ Options:
578
+
579
+ --username USER Bluemix username (type: string, required: true)
580
+ --password PASS Bluemix password (type: string, required: true)
581
+ --organization ORG Bluemix target organization (type: string, required: true)
582
+ --space SPACE Bluemix target space (type: string, required: true)
583
+ --region REGION Bluemix region (type: string, default: ng, known values: ng, eu-gb, eu-de,
584
+ au-syd)
585
+ --api URL Bluemix api URL (type: string)
586
+ --app_name APP Application name (type: string)
587
+ --buildpack PACK Custom buildpack name or Git URL (type: string)
588
+ --manifest FILE Path to the manifest (type: string)
589
+ --[no-]skip_ssl_validation Skip SSL validation
590
+
591
+ Common Options:
592
+
593
+ --run CMD Command to execute after the deployment finished successfully (type: array
594
+ (string, can be given multiple times))
595
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
596
+ --help Get help on this command
597
+
598
+ Examples:
599
+
600
+ dpl bluemixcloudfoundry --username user --password pass --organization org --space space
601
+ dpl bluemixcloudfoundry --username user --password pass --organization org --space space --region ng
602
+ ```
183
603
 
184
604
  ### Boxfuse
185
605
 
186
- Boxfuse will transform your .jar or .war file of your JVM-based application into a minimal machine image based upon which it will launch EC2 instances on AWS.
606
+ ```
607
+ Usage: dpl boxfuse [options]
608
+
609
+ Summary:
610
+
611
+ Boxfuse deployment provider
612
+
613
+ Description:
614
+
615
+ tbd
616
+
617
+ Support for deployments to Boxfuse is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
618
+
619
+ Options:
620
+
621
+ --user USER type: string, required: true
622
+ --secret SECRET type: string, required: true
623
+ --config_file FILE type: string, alias: configfile (deprecated, please use config_file)
624
+ --payload PAYLOAD type: string
625
+ --app APP type: string
626
+ --version VERSION type: string
627
+ --env ENV type: string
628
+ --extra_args ARGS type: string
629
+
630
+ Common Options:
631
+
632
+ --run CMD Command to execute after the deployment finished successfully (type: array
633
+ (string, can be given multiple times))
634
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
635
+ --help Get help on this command
636
+
637
+ Examples:
638
+
639
+ dpl boxfuse --user user --secret secret
640
+ dpl boxfuse --user user --secret secret --config_file file --payload payload --app app
641
+ ```
642
+
643
+ ### Cargo
644
+
645
+ ```
646
+ Usage: dpl cargo [options]
647
+
648
+ Summary:
649
+
650
+ Cargo deployment provider
651
+
652
+ Description:
653
+
654
+ tbd
655
+
656
+ Support for deployments to Cargo is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
657
+
658
+ Options:
659
+
660
+ --token TOKEN Cargo registry API token (type: string, required: true)
661
+
662
+ Common Options:
663
+
664
+ --run CMD Command to execute after the deployment finished successfully (type: array
665
+ (string, can be given multiple times))
666
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
667
+ --help Get help on this command
668
+
669
+ Examples:
670
+
671
+ dpl cargo --token token
672
+ dpl cargo --token token --run cmd --cleanup
673
+ ```
674
+
675
+ ### Chef Supermarket
676
+
677
+ ```
678
+ Usage: dpl chef_supermarket [options]
679
+
680
+ Summary:
681
+
682
+ Chef Supermarket deployment provider
683
+
684
+ Description:
685
+
686
+ tbd
687
+
688
+ Support for deployments to Chef Supermarket is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
689
+
690
+ Options:
691
+
692
+ --user_id ID Chef Supermarket user name (type: string, required: true)
693
+ --client_key KEY Client API key file name (type: string, required: true)
694
+ --name NAME Cookbook name (type: string, alias: cookbook_name, note: defaults to the name
695
+ given in metadata.json or metadata.rb)
696
+ --category CAT Cookbook category in Supermarket (type: string, required: true, alias:
697
+ cookbook_category, see: https://docs.getchef.com/knife_cookbook_site.html#id12)
698
+ --dir DIR Directory containing the cookbook (type: string, default: .)
699
+
700
+ Common Options:
701
+
702
+ --run CMD Command to execute after the deployment finished successfully (type: array
703
+ (string, can be given multiple times))
704
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
705
+ --help Get help on this command
706
+
707
+ Examples:
708
+
709
+ dpl chef_supermarket --user_id id --client_key key --category cat
710
+ dpl chef_supermarket --user_id id --client_key key --category cat --name name --dir dir
711
+ ```
712
+
713
+ ### Cloud Files
714
+
715
+ ```
716
+ Usage: dpl cloudfiles [options]
717
+
718
+ Summary:
719
+
720
+ Cloud Files deployment provider
721
+
722
+ Description:
723
+
724
+ tbd
725
+
726
+ Support for deployments to Cloud Files is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
727
+
728
+ Options:
729
+
730
+ --username USER Rackspace username (type: string, required: true)
731
+ --api_key KEY Rackspace API key (type: string, required: true)
732
+ --region REGION Cloudfiles region (type: string, required: true, known values: ord, dfw, syd,
733
+ iad, hkg)
734
+ --container NAME Name of the container that files will be uploaded to (type: string, required:
735
+ true)
736
+ --glob GLOB Paths to upload (type: string, default: **/*)
737
+ --[no-]dot_match Upload hidden files starting a dot
738
+
739
+ Common Options:
740
+
741
+ --run CMD Command to execute after the deployment finished successfully (type: array
742
+ (string, can be given multiple times))
743
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
744
+ --help Get help on this command
745
+
746
+ Examples:
747
+
748
+ dpl cloudfiles --username user --api_key key --region ord --container name
749
+ dpl cloudfiles --username user --api_key key --region ord --container name --glob glob
750
+ ```
751
+
752
+ ### Cloud Foundry
753
+
754
+ ```
755
+ Usage: dpl cloudfoundry [options]
756
+
757
+ Summary:
758
+
759
+ Cloud Foundry deployment provider
760
+
761
+ Description:
762
+
763
+ tbd
764
+
765
+ Support for deployments to Cloud Foundry is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
766
+
767
+ Options:
768
+
769
+ --username USER Cloud Foundry username (type: string, required: true)
770
+ --password PASS Cloud Foundry password (type: string, required: true)
771
+ --organization ORG Cloud Foundry target organization (type: string, required: true)
772
+ --space SPACE Cloud Foundry target space (type: string, required: true)
773
+ --api URL Cloud Foundry api URL (type: string, required: true)
774
+ --app_name APP Application name (type: string)
775
+ --buildpack PACK Custom buildpack name or Git URL (type: string)
776
+ --manifest FILE Path to the manifest (type: string)
777
+ --[no-]skip_ssl_validation Skip SSL validation
778
+ --[no-]v3 Use the v3 API version to push the application
779
+
780
+ Common Options:
781
+
782
+ --run CMD Command to execute after the deployment finished successfully (type: array
783
+ (string, can be given multiple times))
784
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
785
+ --help Get help on this command
786
+
787
+ Examples:
788
+
789
+ dpl cloudfoundry --username user --password pass --organization org --space space --api url
790
+ ```
791
+
792
+ ### Cloud66
793
+
794
+ ```
795
+ Usage: dpl cloud66 [options]
796
+
797
+ Summary:
798
+
799
+ Cloud66 deployment provider
800
+
801
+ Description:
802
+
803
+ tbd
804
+
805
+ Support for deployments to Cloud66 is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
806
+
807
+ Options:
808
+
809
+ --redeployment_hook URL The redeployment hook URL (type: string, required: true)
810
+
811
+ Common Options:
812
+
813
+ --run CMD Command to execute after the deployment finished successfully (type: array
814
+ (string, can be given multiple times))
815
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
816
+ --help Get help on this command
817
+
818
+ Examples:
819
+
820
+ dpl cloud66 --redeployment_hook url
821
+ dpl cloud66 --redeployment_hook url --run cmd --cleanup
822
+ ```
823
+
824
+ ### Datica
825
+
826
+ ```
827
+ Usage: dpl datica [options]
828
+
829
+ Summary:
830
+
831
+ Datica deployment provider
832
+
833
+ Description:
834
+
835
+ tbd
836
+
837
+ Support for deployments to Datica is in development. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
838
+
839
+ Options:
840
+
841
+ --target TARGET The git remote repository to deploy to (type: string, required: true)
842
+ --path PATH Path to files to deploy (type: string, default: .)
843
+
844
+ Common Options:
187
845
 
188
- #### Options
846
+ --run CMD Command to execute after the deployment finished successfully (type: array
847
+ (string, can be given multiple times))
848
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
849
+ --help Get help on this command
189
850
 
190
- * **user**: Your Boxfuse user
191
- * **secret**: Your Boxfuse secret
192
- * **configfile**: The Boxfuse configuration file to use (default: boxfuse.conf)
193
- * **payload**: The file to use as a payload for the image
194
- * **app**: The Boxfuse app to deploy (default: auto-detected based on payload file name)
195
- * **version**: The version to assign to the image (default: auto-detected based on payload file name)
196
- * **env**: The Boxfuse environment to deploy to (default: test)
851
+ Examples:
197
852
 
198
- All options can also be configured directly in boxfuse.conf as described in [the documentation](https://boxfuse.com/docs/commandline/#configuration).
853
+ dpl datica --target target
854
+ dpl datica --target target --path path --run cmd --cleanup
855
+ ```
856
+
857
+ ### Engineyard
858
+
859
+ ```
860
+ Usage: dpl engineyard [options]
199
861
 
200
- #### Environment Variables
862
+ Summary:
201
863
 
202
- For authentication you can also use Travis CI secure environment variable:
864
+ Engineyard deployment provider
203
865
 
204
- * **BOXFUSE_USER**: Your Boxfuse user
205
- * **BOXFUSE_SECRET**: Your Boxfuse secret
866
+ Description:
206
867
 
207
- #### Examples
208
- dpl --provider=boxfuse
209
- dpl --provider=boxfuse --user=<your-boxfuse-user> --secret=<your-boxfuse-secret> --env=<your-boxfuse-environment>
210
- dpl --provider=boxfuse --configfile=<your-boxfuse-config-file>
868
+ tbd
211
869
 
870
+ Support for deployments to Engineyard is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
212
871
 
213
- ### Nodejitsu:
872
+ Options:
214
873
 
215
- #### Options:
874
+ Either api_key, or email and password are required.
216
875
 
217
- * **username**: Nodejitsu Username
218
- * **api-key**: Nodejitsu API Key
876
+ --api_key KEY Engine Yard API key (type: string)
877
+ --email EMAIL Engine Yard account email (type: string)
878
+ --password PASS Engine Yard password (type: string)
879
+ --app APP Engine Yard application name (type: string, default: repo name)
880
+ --env ENV Engine Yard application environment (type: string, alias: environment)
881
+ --migrate CMD Engine Yard migration commands (type: string)
882
+ --account NAME Engine Yard account name (type: string)
219
883
 
220
- #### Examples:
221
- dpl --provider=nodejitsu --username=<username> --api-key=<api-key>
884
+ Common Options:
222
885
 
223
- ### Engine Yard:
886
+ --run CMD Command to execute after the deployment finished successfully (type: array
887
+ (string, can be given multiple times))
888
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
889
+ --help Get help on this command
224
890
 
225
- #### Options:
891
+ Examples:
226
892
 
227
- * **api-key**: Engine Yard Api Key
228
- * **username**: Engine Yard username. Not necessary if api-key is used. Requires git strategy.
229
- * **password**: Engine Yard password. Not necessary if api-key is used.
230
- * **app**: Engine Yard Application name. Defaults to git repo's name.
231
- * **environment**: Engine Yard Application Environment. Optional.
232
- * **migrate**: Engine Yard migration commands. Optional.
893
+ dpl engineyard --api_key key
894
+ dpl engineyard --email email --password pass
895
+ dpl engineyard --api_key key --app app --env env --migrate cmd --account name
896
+ ```
233
897
 
234
- #### Examples:
898
+ ### Firebase
235
899
 
236
- dpl --provider=engineyard --api-key=<api-key>
237
- dpl --provider=engineyard --username=<username> --password=<password> --environment=staging
238
- dpl --provider=engineyard --api-key=<api-key> --app=<application> --migrate=`rake db:migrate`
900
+ ```
901
+ Usage: dpl firebase [options]
239
902
 
240
- ### OpenShift:
903
+ Summary:
241
904
 
242
- #### Options:
905
+ Firebase deployment provider
243
906
 
244
- * **user**: Openshift Username.
245
- * **password**: Openshift Password.
246
- * **domain**: Openshift Application Domain.
247
- * **app**: Openshift Application. Defaults to git repo's name.
907
+ Description:
248
908
 
249
- #### Examples:
909
+ tbd
250
910
 
251
- dpl --provider=openshift --user=<username> --password=<password> --domain=<domain>
252
- dpl --provider=openshift --user=<username> --password=<password> --domain=<domain> --app=<app>
911
+ Support for deployments to Firebase is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
253
912
 
254
- ### RubyGems:
913
+ Options:
255
914
 
256
- #### Options:
915
+ --token TOKEN Firebase CI access token (generate with firebase login:ci) (type: string,
916
+ required: true)
917
+ --project NAME Firebase project to deploy to (defaults to the one specified in your
918
+ firebase.json) (type: string)
919
+ --message MSG Message describing this deployment. (type: string)
920
+ --only SERVICES Firebase services to deploy (type: string, note: can be a comma-separated list)
921
+ --[no-]force Whether or not to delete Cloud Functions missing from the current working
922
+ directory
257
923
 
258
- * **api-key**: Rubygems Api Key.
259
- * **gemspec**: Optional. The name of the `gemspec` file to use to build the gem.
260
- * **gemspec_glob**: Optional. A glob pattern to search for gemspec files when multiple gems are generated in the repository.
261
- This _overrides_ the `gemspec` option.
924
+ Common Options:
262
925
 
263
- #### Examples:
926
+ --run CMD Command to execute after the deployment finished successfully (type: array
927
+ (string, can be given multiple times))
928
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
929
+ --help Get help on this command
264
930
 
265
- dpl --provider=rubygems --api-key=<api-key>
931
+ Examples:
266
932
 
267
- ### PyPI:
933
+ dpl firebase --token token
934
+ dpl firebase --token token --project name --message msg --only services --force
935
+ ```
268
936
 
269
- #### Options:
937
+ ### GitHub Pages
270
938
 
271
- * **user**: PyPI Username.
272
- * **password**: PyPI Password.
273
- * **server**: Optional. Only required if you want to release to a different index. Follows the form of 'https://mypackageindex.com/index'. Defaults to 'https://upload.pypi.org/legacy/'.
274
- * **distributions**: Optional. A space-separated list of distributions to be uploaded to PyPI. Defaults to 'sdist'.
275
- * **skip_upload_docs**: Optional. When set to `false`, documentation is uploaded. Defaults to `true`.
276
- Note that upload.pypi.org does not support document uploading. If you set
277
- this option to `false`, your deployment fails, unless you specify the server
278
- that supports this option. See https://github.com/travis-ci/dpl/issues/660
279
- for details.
280
- * **docs_dir**: Optional. A path to the directory to upload documentation from. Defaults to 'build/docs'
281
- * **skip_existing**: Optional. When set to `true`, the deployment will not fail if a file with the same name already exists on the server. It won't be uploaded and will not overwrite the existing file. Defaults to `false`.
939
+ ```
940
+ Usage: dpl pages [options]
282
941
 
283
- #### Environment variables:
942
+ Summary:
284
943
 
285
- * **PYPI_USER**: PyPI Username. Used if the `user` option is omitted.
286
- * **PYPI_PASSWORD**: PyPI Password. Used if the `password` option is omitted.
287
- * **PYPI_SERVER** Optional. Only required if you want to release to a different index. Used if the `server` option is omitted.
288
- * **PYPI_DISTRIBUTIONS** Optional. A space-separated list of distributions to be uploaded to PyPI. Used if the `distributions` option is omitted.
289
- * **PYPI_DOCS_DIR** Optional. A path to the directory to upload documentation from. Used if the `docs_dir` option is omitted.
944
+ GitHub Pages deployment provider
290
945
 
291
- #### Examples:
946
+ Description:
292
947
 
293
- dpl --provider=pypi --user=<username> --password=<password>
294
- dpl --provider=pypi --user=<username> --password=<password> --server='https://mypackageindex.com/index' --distributions='sdist bdist_wheel'
948
+ tbd
295
949
 
296
- ### npm:
950
+ Support for deployments to GitHub Pages is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
297
951
 
298
- #### Options:
952
+ Options:
299
953
 
300
- * **email**: npm account email.
301
- * **api-key**: your [npm token](https://docs.npmjs.com/creating-and-viewing-authentication-tokens). _Can be retrieved from your ~/.npmrc file._
954
+ Either github_token, or deploy_key are required.
302
955
 
303
- #### Examples:
956
+ --github_token TOKEN GitHub oauth token with repo permission (type: string)
957
+ --deploy_key KEY A base64-encoded, private deploy key with write access to the repository (type:
958
+ string, note: RSA keys are too long to fit into a Travis CI secure variable, but
959
+ ECDSA-521 fits, see:
960
+ https://developer.github.com/v3/guides/managing-deploy-keys/#deploy-keys)
961
+ --repo SLUG Repo slug (type: string, default: repo slug)
962
+ --target_branch BRANCH Branch to push force to (type: string, default: gh-pages)
963
+ --[no-]keep_history Create incremental commit instead of doing push force (default: true)
964
+ --commit_message MSG type: string, default: Deploy %{project_name} to %{url}:%{target_branch}
965
+ --[no-]allow_empty_commit Allow an empty commit to be created (requires: keep_history)
966
+ --[no-]committer_from_gh Use the token's owner name and email for commit. Overrides the email and name
967
+ options
968
+ --[no-]verbose Be verbose about the deploy process
969
+ --local_dir DIR Directory to push to GitHub Pages (type: string, default: .)
970
+ --fqdn FQDN Writes your website's domain name to the CNAME file (type: string)
971
+ --project_name NAME Used in the commit message only (defaults to fqdn or the current repo slug)
972
+ (type: string)
973
+ --email EMAIL Committer email (type: string, default: deploy@travis-ci.org)
974
+ --name NAME Committer name (type: string, default: Deploy Bot)
975
+ --[no-]deployment_file Enable creation of a deployment-info file
976
+ --github_url URL type: string, default: github.com
304
977
 
305
- dpl --provider=npm --email=<email> --api-key=<token>
978
+ Common Options:
306
979
 
307
- ### S3:
980
+ --run CMD Command to execute after the deployment finished successfully (type: array
981
+ (string, can be given multiple times))
982
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
983
+ --help Get help on this command
308
984
 
309
- #### Options:
985
+ Examples:
310
986
 
311
- * **access-key-id**: AWS Access Key ID. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
312
- * **secret-access-key**: AWS Secret Key. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
313
- * **bucket**: S3 Bucket.
314
- * **region**: S3 Region. Defaults to us-east-1.
315
- * **endpoint**: S3 Endpoint. Default is computed for you.
316
- * **upload-dir**: S3 directory to upload to. Defaults to root directory.
317
- * **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/).
318
- * **server-side-encryption**: When set to `true`, use S3 Server Side Encryption (SSE-AES256). Defaults to `false`.
319
- * **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
- * **detect-encoding**: Set HTTP header `Content-Encoding` for files compressed with `gzip` and `compress` utilities. Defaults to not set.
321
- * **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`.
322
- * **expires**: This sets the date and time that the cached object is no longer cacheable. Defaults to not set. The date must be in the format `YYYY-MM-DD HH:MM:SS -ZONE`.
323
- * **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`.
324
- * **dot_match**: When set to `true`, upload files starting a `.`.
325
- * **index_document_suffix**: Set the index document of a S3 website.
326
- * **default_text_charset**: Set the default character set to append to the content-type of text files you are uploading.
327
- * **max_threads**: The number of threads to use for S3 file uploads. Default is 5, and the absolute maximum is 15.
987
+ dpl pages --github_token token
988
+ dpl pages --deploy_key key
989
+ dpl pages --github_token token --repo slug --target_branch branch --keep_history --commit_message msg
990
+ ```
328
991
 
329
- #### File-specific `Cache-Control` and `Expires` headers
992
+ ### GitHub Releases
330
993
 
331
- It is possible to set file-specific `Cache-Control` and `Expires` headers using `value: file[, file]` format.
994
+ ```
995
+ Usage: dpl releases [options]
332
996
 
333
- #### Environment variables:
997
+ Summary:
334
998
 
335
- * **AWS_ACCESS_KEY_ID**: AWS Access Key ID. Used if the `access-key-id` option is omitted.
336
- * **AWS_SECRET_ACCESS_KEY**: AWS Secret Key. Used if the `secret-access-key` option is omitted.
999
+ GitHub Releases deployment provider
337
1000
 
338
- ##### Example:
1001
+ Description:
339
1002
 
340
- --cache_control="no-cache: index.html"
341
- --expires="\"2012-12-21 00:00:00 -0000\": *.css, *.js"
1003
+ tbd
342
1004
 
343
- #### Examples:
1005
+ Support for deployments to GitHub Releases is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
344
1006
 
345
- dpl --provider=s3 --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --bucket=<bucket> --acl=public_read
346
- dpl --provider=s3 --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --bucket=<bucket> --detect-encoding --cache_control=max-age=99999 --expires="2012-12-21 00:00:00 -0000"
347
- dpl --provider=s3 --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --bucket=<bucket> --region=us-west-2 --local-dir=BUILD --upload-dir=BUILDS
1007
+ Options:
348
1008
 
349
- ### Using S3-compatible Object Storage
1009
+ Either api_key, or user and password are required.
350
1010
 
351
- By overriding the `endpoint` option, you can use an S3-compatible object storage such as [Digital Ocean Spaces](https://www.digitalocean.com/products/object-storage/).
1011
+ --api_key TOKEN GitHub oauth token (needs public_repo or repo permission) (type: string)
1012
+ --username LOGIN GitHub login name (type: string, alias: user)
1013
+ --password PASS GitHub password (type: string)
1014
+ --repo SLUG GitHub repo slug (type: string, default: repo slug)
1015
+ --file FILE File to release to GitHub (type: array (string, can be given multiple times),
1016
+ required: true)
1017
+ --[no-]file_glob Interpret files as globs
1018
+ --[no-]overwrite Overwrite files with the same name
1019
+ --[no-]prerelease Identify the release as a prerelease
1020
+ --release_number NUM Release number (overide automatic release detection) (type: string)
1021
+ --release_notes STR Content for the release notes (type: string, alias: body)
1022
+ --release_notes_file PATH Path to a file containing the release notes (type: string, note: will be ignored
1023
+ if --release_notes is given)
1024
+ --[no-]draft Identify the release as a draft
1025
+ --tag_name TAG Git tag from which to create the release (type: string)
1026
+ --target_commitish STR Commitish value that determines where the Git tag is created from (type: string)
1027
+ --name NAME Name for the release (type: string)
352
1028
 
353
- For example: `--endpoint=https://nyc3.digitaloceanspaces.com`
1029
+ Common Options:
354
1030
 
355
- ### Elastic Beanstalk:
1031
+ --run CMD Command to execute after the deployment finished successfully (type: array
1032
+ (string, can be given multiple times))
1033
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1034
+ --help Get help on this command
356
1035
 
357
- #### Options:
1036
+ Examples:
358
1037
 
359
- * **access-key-id**: AWS Access Key ID. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
360
- * **secret-access-key**: AWS Secret Key. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
361
- * **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.
362
- * **app**: Elastic Beanstalk application name.
363
- * **env**: Elastic Beanstalk environment name which will be updated.
364
- * **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.
365
- * **bucket_name**: Bucket name to upload app to.
366
- * **bucket_path**: Location within Bucket to upload app to.
367
- * **only_create_app_version**: only create the app version, don't actually deploy it.
1038
+ dpl releases --file file --api_key token
1039
+ dpl releases --file file --password pass
1040
+ dpl releases --file file
1041
+ dpl releases --file file --api_key token --username login --repo slug --file_glob
1042
+ ```
368
1043
 
369
- #### Environment variables:
1044
+ ### Google App Engine
370
1045
 
371
- * **ELASTIC_BEANSTALK_ENV**: Elastic Beanstalk environment name which will be updated. Is only used if `env` option is omitted.
372
- * **ELASTIC_BEANSTALK_LABEL**: Label name of the new version.
373
- * **ELASTIC_BEANSTALK_DESCRIPTION**: Description of the new version. Defaults to the last commit message.
1046
+ ```
1047
+ Usage: dpl gae [options]
374
1048
 
375
- #### Examples:
1049
+ Summary:
376
1050
 
377
- dpl --provider=elasticbeanstalk --access-key-id=<access-key-id> --secret-access-key="<secret-access-key>" --app="example-app-name" --env="example-app-environment" --region="us-west-2"
1051
+ Google App Engine deployment provider
378
1052
 
379
- ### OpsWorks:
1053
+ Description:
380
1054
 
381
- #### Options:
1055
+ tbd
382
1056
 
383
- * **access-key-id**: AWS Access Key ID. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
384
- * **secret-access-key**: AWS Secret Key. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
385
- * **app-id**: The app ID.
386
- * **instance-ids**: An instance id. (Use this option multiple times to specify multiple instance ids. Default: [])
387
- * **layer-ids**: A layer id. (Use this option multiple times to specify multiple layer ids. Default: [])
388
- * **migrate**: Migrate the database. (Default: false)
389
- * **wait-until-deployed**: Wait until the app is deployed and return the deployment status. (Default: false)
390
- * **update-on-success**: When **wait-until-deployed** and **updated-on-success** are both `true`, application source is updated to the current SHA. Ignored when **wait-until-deployed** is false. (Default: false)
391
- * **custom_json**: Override custom_json options. If using this, default configuration will be overriden. See the code [here](https://github.com/travis-ci/dpl/blob/master/lib/dpl/provider/ops_works.rb#L43). More about `custom_json` [here](http://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-json.html).
1057
+ Support for deployments to Google App Engine is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
392
1058
 
393
- #### Environment variables:
1059
+ Options:
394
1060
 
395
- * **AWS_ACCESS_KEY_ID**: AWS Access Key ID. Used if the `access-key-id` option is omitted.
396
- * **AWS_SECRET_ACCESS_KEY**: AWS Secret Key. Used if the `secret-access-key` option is omitted.
1061
+ --project ID Project ID used to identify the project on Google Cloud (type: string, required:
1062
+ true)
1063
+ --keyfile FILE Path to the JSON file containing your Service Account credentials in JSON Web
1064
+ Token format. To be obtained via the Google Developers Console. Should be
1065
+ handled with care as it contains authorization keys. (type: string, default:
1066
+ service-account.json)
1067
+ --config FILE Path to your service configuration file (type: array (string, can be given
1068
+ multiple times), default: app.yaml)
1069
+ --version VER The version of the app that will be created or replaced by this deployment. If
1070
+ you do not specify a version, one will be generated for you (type: string)
1071
+ --verbosity LEVEL Adjust the log verbosity (type: string, default: warning)
1072
+ --[no-]promote Do not promote the deployed version (default: true)
1073
+ --[no-]stop_previous_version Prevent your deployment from stopping the previously promoted version. This is
1074
+ from the future, so might not work (yet). (default: true)
1075
+ --[no-]install_sdk Do not install the Google Cloud SDK (default: true)
397
1076
 
398
- #### Examples:
1077
+ Common Options:
399
1078
 
400
- dpl --provider=opsworks --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --app-id=<app-id> --migrate --wait-until-deployed
401
- dpl --provider=opsworks --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --app-id=<app-id> --layer-ids=<layer-id>
1079
+ --run CMD Command to execute after the deployment finished successfully (type: array
1080
+ (string, can be given multiple times))
1081
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1082
+ --help Get help on this command
402
1083
 
403
- ### Anynines:
1084
+ Examples:
404
1085
 
405
- #### Options:
1086
+ dpl gae --project id
1087
+ dpl gae --project id --keyfile file --config file --version ver --verbosity level
1088
+ ```
406
1089
 
407
- * **username**: anynines username.
408
- * **password**: anynines password.
409
- * **organization**: anynines target organization.
410
- * **space**: anynines target space
411
- * **app_name**: Application name. Optional.
1090
+ ### Google Cloud Store
412
1091
 
413
- #### Examples:
1092
+ ```
1093
+ Usage: dpl gcs [options]
414
1094
 
415
- dpl --provider=anynines --username=<username> --password=<password> --organization=<organization> --space=<space>
1095
+ Summary:
416
1096
 
417
- ### Atlas:
1097
+ Google Cloud Store deployment provider
418
1098
 
419
- The Atlas provider uses the [`atlas-upload-cli`](https://github.com/hashicorp/atlas-upload-cli) command. The [Atlas Upload CLI](https://github.com/hashicorp/atlas-upload-cli) is a lightweight command line interface for uploading application code to [Atlas](https://atlas.hashicorp.com/homepage?utm_source=github&utm_medium=travis-ci&utm_campaign=dpl) to kick off Atlas-based deployment processes from Travis CI.
1099
+ Description:
420
1100
 
421
- You first need to create an [Atlas account](https://atlas.hashicorp.com/account/new?utm_source=github&utm_medium=travis-ci&utm_campaign=dpl), then, generate an [Atlas API token](https://atlas.hashicorp.com/settings/tokens) for Travis CI.
1101
+ tbd
422
1102
 
423
- #### Options:
1103
+ Support for deployments to Google Cloud Store is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
424
1104
 
425
- * **token** (Required): Atlas API token.
426
- * **app** (Required): Atlas application name (`<atlas-username>/<app-name>`).
427
- * **exclude**: Glob pattern of files or directories to exclude (this may be specified multiple times).
428
- * **include**: Glob pattern of files/directories to include (this may be specified multiple times, any excludes will override conflicting includes).
429
- * **address**: The address of the Atlas server.
430
- * **vcs**: Use VCS to determine which files to include/exclude.
431
- * **metadata**: Arbitrary key-value (string) metadata to be sent with the upload; may be specified multiple times.
432
- * **debug**: Turn on debug output.
433
- * **version**: Print the version of this application.
1105
+ Options:
434
1106
 
435
- #### Examples:
1107
+ --access_key_id ID GCS Interoperable Access Key ID (type: string, required: true)
1108
+ --secret_access_key KEY GCS Interoperable Access Secret (type: string, required: true)
1109
+ --bucket BUCKET GCS Bucket (type: string, required: true)
1110
+ --local_dir DIR Local directory to upload from (type: string, default: .)
1111
+ --upload_dir DIR GCS directory to upload to (type: string)
1112
+ --[no-]dot_match Upload hidden files starting with a dot
1113
+ --acl ACL Access control to set for uploaded objects (type: string)
1114
+ --[no-]detect_encoding HTTP header Content-Encoding to set for files compressed with gzip and compress
1115
+ utilities.
1116
+ --cache_control HEADER HTTP header Cache-Control to suggest that the browser cache the file. (type:
1117
+ string)
436
1118
 
437
- dpl --provider=atlas --token=ATLAS_TOKEN --app=ATLAS_USERNAME/APP_NAME
438
- dpl --provider=atlas --token=ATLAS_TOKEN --app=ATLAS_USERNAME/APP_NAME --debug --vcs --version
439
- dpl --provider=atlas --token=ATLAS_TOKEN --app=ATLAS_USERNAME/APP_NAME --exclude="*.log" --include="build/*" --include="bin/*"
440
- dpl --provider=atlas --token=ATLAS_TOKEN --app=ATLAS_USERNAME/APP_NAME --metadata="foo=bar" --metadata="bar=baz"
1119
+ Common Options:
441
1120
 
442
- ### Azure Web Apps:
1121
+ --run CMD Command to execute after the deployment finished successfully (type: array
1122
+ (string, can be given multiple times))
1123
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1124
+ --help Get help on this command
443
1125
 
444
- #### Options:
1126
+ Examples:
445
1127
 
446
- * **site**: Web App Name (if your app lives at myapp.azurewebsites.net, the name would be myapp).
447
- * **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).
448
- * **username**: Web App Deployment Username.
449
- * **password**: Web App Deployment Password.
450
- * **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.
1128
+ dpl gcs --access_key_id id --secret_access_key key --bucket bucket
1129
+ dpl gcs --access_key_id id --secret_access_key key --bucket bucket --local_dir dir --upload_dir dir
1130
+ ```
451
1131
 
452
- #### Environment variables:
1132
+ ### Hackage
453
1133
 
454
- * **AZURE_WA_SITE** Web App Name. Used if the `site` option is omitted.
455
- * **AZURE_WA_SLOT** Optional. Slot name if your app uses staging deployment. Used if the `slot` option is omitted.
456
- * **AZURE_WA_USERNAME**: Web App Deployment Username. Used if the `username` option is omitted.
457
- * **AZURE_WA_PASSWORD**: Web App Deployment Password. Used if the `password` option is omitted.
1134
+ ```
1135
+ Usage: dpl hackage [options]
458
1136
 
459
- #### Examples:
1137
+ Summary:
460
1138
 
461
- dpl --provider=AzureWebApps --username=depluser --password=deplp@ss --site=dplsite --slot=dplsite-test --verbose
1139
+ Hackage deployment provider
462
1140
 
463
- ### Cloud Foundry:
1141
+ Description:
464
1142
 
465
- #### Options:
1143
+ tbd
466
1144
 
467
- * **username**: Cloud Foundry username.
468
- * **password**: Cloud Foundry password.
469
- * **organization**: Cloud Foundry target organization.
470
- * **api**: Cloud Foundry api URL
471
- * **space**: Cloud Foundry target space
472
- * **app_name**: Application name. Optional.
473
- * **manifest**: Path to manifest file. Optional.
474
- * **skip_ssl_validation**: Skip ssl validation. Optional.
1145
+ Support for deployments to Hackage is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
475
1146
 
476
- #### Examples:
1147
+ Options:
477
1148
 
478
- dpl --provider=cloudfoundry --username=<username> --password=<password> --organization=<organization> --api=<api> --space=<space> --skip-ssl-validation
1149
+ --username USER Hackage username (type: string, required: true)
1150
+ --password USER Hackage password (type: string, required: true)
1151
+ --[no-]publish Whether or not to publish the package
479
1152
 
480
- ### cargo:
1153
+ Common Options:
481
1154
 
482
- #### Options:
1155
+ --run CMD Command to execute after the deployment finished successfully (type: array
1156
+ (string, can be given multiple times))
1157
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1158
+ --help Get help on this command
483
1159
 
484
- * **token**: Your cargo registry API token, for crates.io generate at <https://crates.io/me>
1160
+ Examples:
485
1161
 
486
- #### Examples:
1162
+ dpl hackage --username user --password user
1163
+ dpl hackage --username user --password user --publish --run cmd --cleanup
1164
+ ```
487
1165
 
488
- dpl --provider=cargo --token=<token>
1166
+ ### Hephy
489
1167
 
490
- ### Rackspace Cloud Files:
1168
+ ```
1169
+ Usage: dpl hephy [options]
491
1170
 
492
- #### Options:
1171
+ Summary:
493
1172
 
494
- * **username**: Rackspace Username.
495
- * **api-key**: Rackspace API Key.
496
- * **region**: Cloud Files Region. The region in which your Cloud Files container exists.
497
- * **container**: Container Name. The container where you would like your files to be uploaded.
498
- * **dot_match**: When set to `true`, upload files starting a `.`.
1173
+ Hephy deployment provider
499
1174
 
500
- #### Examples:
1175
+ Description:
501
1176
 
502
- dpl --provider=cloudfiles --username=<username> --api-key=<api-key> --region=<region> --container=<container>
1177
+ tbd
503
1178
 
504
- ### GitHub Pages:
1179
+ Support for deployments to Hephy is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
505
1180
 
506
- #### Options:
1181
+ Options:
507
1182
 
508
- * **github-token**: GitHub oauth token with `repo` permission.
509
- * **repo**: Repo slug, defaults to current one.
510
- * **target-branch**: Branch to push force to, defaults to gh-pages.
511
- * **keep-history**: Optional, create incremental commit instead of doing push force, defaults to false.
512
- * **allow-empty-commit**: Optional, defaults to false. Enabled if only keep-history is true.
513
- * **committer-from-gh**: Optional, defaults to false. Allows to use token's owner name and email for commit. Overrides `email` and `name` options.
514
- * **verbose**: Optional, be verbose about internal steps, defaults to false.
515
- * **local-dir**: Directory to push to GitHub Pages, defaults to current.
516
- * **fqdn**: Optional, no default, sets a main domain for your website.
517
- * **project-name**: Defaults to fqdn or repo slug, used for metadata.
518
- * **email**: Optional, committer info, defaults to deploy@travis-ci.org.
519
- * **name**: Optional, committer, defaults to Deployment Bot.
520
- * **deployment-file**: Optional, defaults to false, enables creation of deployment-info files
1183
+ --controller NAME Hephy controller (type: string, required: true, e.g.: hephy.hephyapps.com)
1184
+ --username USER Hephy username (type: string, required: true)
1185
+ --password PASS Hephy password (type: string, required: true)
1186
+ --app APP Deis app (type: string, required: true)
1187
+ --cli_version VER Install a specific hephy cli version (type: string, default: stable)
1188
+ --[no-]verbose Verbose log output
521
1189
 
522
- #### Examples:
1190
+ Common Options:
523
1191
 
524
- dpl --provider=pages --github-token=<api-key> --local-dir=build
1192
+ --run CMD Command to execute after the deployment finished successfully (type: array
1193
+ (string, can be given multiple times))
1194
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1195
+ --help Get help on this command
525
1196
 
526
- ### GitHub Releases:
1197
+ Examples:
527
1198
 
528
- #### Options:
1199
+ dpl hephy --controller name --username user --password pass --app app
1200
+ dpl hephy --controller name --username user --password pass --app app --cli_version ver
1201
+ ```
529
1202
 
530
- * **api-key**: GitHub oauth token with `public_repo` or`repo` permission.
531
- * **user**: GitHub username. Not necessary if `api-key` is used.
532
- * **password**: GitHub Password. Not necessary if `api-key` is used.
533
- * **repo**: GitHub Repo. Defaults to git repo's name.
534
- * **file**: File to upload to GitHub Release.
535
- * **file_glob**: If files should be interpreted as globs (\* and \*\* wildcards). Defaults to false.
536
- * **overwrite**: If files with the same name should be overwritten. Defaults to false.
537
- * **release-number**: Overide automatic release detection, set a release manually.
538
- * **prerelease**: Identify the release as a prerelease.
1203
+ ### Heroku API
539
1204
 
540
- Additionally, options can be passed to [Octokit](https://github.com/octokit/octokit.rb) client.
541
- These are documented in https://github.com/octokit/octokit.rb/blob/master/lib/octokit/client/releases.rb.
1205
+ ```
1206
+ Usage: dpl heroku api [options]
542
1207
 
543
- #### GitHub Two Factor Authentication
1208
+ Summary:
544
1209
 
545
- For accounts using two factor authentication, you have to use an oauth token as a username and password will not work.
1210
+ Heroku API deployment provider
546
1211
 
547
- #### Examples:
1212
+ Description:
548
1213
 
549
- dpl --provider=releases --api-key=<api-key> --file=build.tar.gz
1214
+ tbd
550
1215
 
551
- ### Cloud 66
1216
+ Support for deployments to Heroku API is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
552
1217
 
553
- #### Options:
1218
+ Options:
554
1219
 
555
- * **redeployment_hook**: The redeployment hook URL. Available from the Information menu within the Cloud 66 portal.
1220
+ --api_key KEY Heroku API key (type: string, required: true)
556
1221
 
557
- #### Examples:
1222
+ Common Options:
558
1223
 
559
- dpl --provider=cloud66 --redeployment_hook=<url>
1224
+ --run CMD Command to execute after the deployment finished successfully (type: array
1225
+ (string, can be given multiple times))
1226
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1227
+ --app APP Heroku app name (type: string, default: repo name)
1228
+ --help Get help on this command
560
1229
 
561
- ### Hackage:
1230
+ Examples:
562
1231
 
563
- #### Options:
1232
+ dpl heroku api --api_key key
1233
+ dpl heroku api --api_key key --run cmd --cleanup --app app
1234
+ ```
564
1235
 
565
- * **username**: Hackage username.
566
- * **password**: Hackage password.
1236
+ ### Heroku Git
567
1237
 
568
- #### Examples:
1238
+ ```
1239
+ Usage: dpl heroku git [options]
569
1240
 
570
- dpl --provider=hackage --username=<username> --password=<password>
1241
+ Summary:
571
1242
 
572
- ### Deis:
1243
+ Heroku Git deployment provider
573
1244
 
574
- #### Options:
1245
+ Description:
575
1246
 
576
- * **controller**: Deis controller e.g. deis.deisapps.com
577
- * **username**: Deis username
578
- * **password**: Deis password
579
- * **app**: Deis app
580
- * **cli_version**: Install a specific deis cli version
1247
+ tbd
581
1248
 
582
- #### Examples:
1249
+ Support for deployments to Heroku Git is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
583
1250
 
584
- dpl --provider=deis --controller=deis.deisapps.com --username=travis --password=secret --app=example
1251
+ Options:
585
1252
 
586
- ### Hephy:
1253
+ Either api_key, or username and password are required.
587
1254
 
588
- #### Options:
1255
+ --api_key KEY Heroku API key (type: string)
1256
+ --username USER Heroku username (type: string, alias: user)
1257
+ --password PASS Heroku password (type: string)
1258
+ --git URL type: string
589
1259
 
590
- * **controller**: Hephy controller e.g. hephy.hephyapps.com
591
- * **username**: Hephy username
592
- * **password**: Hephy password
593
- * **app**: Hephy app
594
- * **cli_version**: Install a specific hephy cli version
1260
+ Common Options:
595
1261
 
596
- #### Examples:
1262
+ --run CMD Command to execute after the deployment finished successfully (type: array
1263
+ (string, can be given multiple times))
1264
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1265
+ --app APP Heroku app name (type: string, default: repo name)
1266
+ --help Get help on this command
597
1267
 
598
- dpl --provider=hephy --controller=hephy.hephyapps.com --username=travis --password=secret --app=example
1268
+ Examples:
599
1269
 
600
- ### Google Cloud Storage:
1270
+ dpl heroku git --api_key key
1271
+ dpl heroku git --username user --password pass
1272
+ dpl heroku git --api_key key --git url --run cmd --cleanup --app app
1273
+ ```
601
1274
 
602
- #### Options:
1275
+ ### Launchpad
603
1276
 
604
- * **access-key-id**: GCS Interoperable Access Key ID. Info about Interoperable Access Key from [here](https://developers.google.com/storage/docs/migrating).
605
- * **secret-access-key**: GCS Interoperable Access Secret.
606
- * **bucket**: GCS Bucket.
607
- * **upload-dir**: GCS directory to upload to. Defaults to root directory.
608
- * **local-dir**: Local directory to upload from. Can be set from a global perspective (~/travis/build) or relative perspective (build) Defaults to project root.
609
- * **dot_match**: When set to `true`, upload files starting a `.`.
610
- * **detect-encoding**: Set HTTP header `Content-Encoding` for files compressed with `gzip` and `compress` utilities. Defaults to not set.
611
- * **cache_control**: Set HTTP header `Cache-Control` to suggest that the browser cache the file. Defaults to not set. Info is [here](https://developers.google.com/storage/docs/reference-headers#cachecontrol)
612
- * **acl**: Sets the access control for the uploaded objects. Defaults to not set. Info is [here](https://developers.google.com/storage/docs/reference-headers#xgoogacl)
1277
+ ```
1278
+ Usage: dpl launchpad [options]
613
1279
 
614
- #### Examples:
1280
+ Summary:
615
1281
 
616
- dpl --provider=gcs --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --bucket=<bucket>
617
- dpl --provider=gcs --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --bucket=<bucket> --local-dir= BUILD
618
- dpl --provider=gcs --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --bucket=<bucket> --acl=public-read
619
- dpl --provider=gcs --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --bucket=<bucket> --detect-encoding --cache_control=max-age=99999
620
- dpl --provider=gcs --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --bucket=<bucket> --local-dir=BUILD --upload-dir=BUILDS
1282
+ Launchpad deployment provider
621
1283
 
622
- ### BitBalloon:
1284
+ Description:
623
1285
 
624
- #### Options:
1286
+ tbd
625
1287
 
626
- * **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.
627
- * **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.
628
- * **local_dir**: Optional. The sub-directory of the built assets for deployment. Default to current path.
1288
+ Support for deployments to Launchpad is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
629
1289
 
630
- #### Examples:
1290
+ Options:
631
1291
 
632
- dpl --access-token=<access-token> --site-id=3f932c1e-708b-4573-938a-a07d9728c22e
633
- dpl --access-token=<access-token> --site-id=3f932c1e-708b-4573-938a-a07d9728c22e --local-dir=build
1292
+ --slug SLUG Launchpad project slug (type: string, format: /^~[^\/]+\/[^\/]+\/[^\/]+$/, e.g.:
1293
+ ~user-name/project-name/branch-name)
1294
+ --oauth_token TOKEN Launchpad OAuth token (type: string)
1295
+ --oauth_token_secret SECRET Launchpad OAuth token secret (type: string)
634
1296
 
635
- ### Puppet Forge:
1297
+ Common Options:
636
1298
 
637
- #### Options:
1299
+ --run CMD Command to execute after the deployment finished successfully (type: array
1300
+ (string, can be given multiple times))
1301
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1302
+ --help Get help on this command
638
1303
 
639
- * **user**: Required. The user name at Puppet forge.
640
- * **password**: Required. The Puppet forge password.
641
- * **url**: Optional. The forge URL to deploy to. Defaults to https://forgeapi.puppetlabs.com/
1304
+ Examples:
642
1305
 
643
- #### Examples:
1306
+ dpl launchpad --slug slug --oauth_token token --oauth_token_secret secret --run cmd --cleanup
1307
+ ```
644
1308
 
645
- dpl --provider=puppetforge --user=puppetlabs --password=s3cr3t
1309
+ ### Netlify
646
1310
 
647
- ### packagecloud:
1311
+ ```
1312
+ Usage: dpl netlify [options]
648
1313
 
649
- #### Options:
1314
+ Summary:
650
1315
 
651
- * **username**: Required. The packagecloud.io username.
652
- * **token**: Required. The [packagecloud.io api token](https://packagecloud.io/docs/api#api_tokens).
653
- * **repository**: Required. The repository to push to.
654
- * **local_dir**: Optional. The sub-directory of the built assets for deployment. Default to current path.
655
- * **dist**: Required for debian, rpm, and node.js packages. The complete list of supported strings can be found on the [packagecloud.io docs](https://packagecloud.io/docs#os_distro_version). For node.js packages, simply use "node".
656
- * **force**: Optional. Whether package has to be (re)uploaded / deleted before upload
1316
+ Netlify deployment provider
657
1317
 
658
- #### Examples:
1318
+ Description:
659
1319
 
660
- dpl --provider=packagecloud --username=packageuser --token=t0k3n --repository=myrepo
661
- dpl --provider=packagecloud --username=packageuser --token=t0k3n --repository=myrepo --dist=ubuntu/precise
662
- dpl --provider=packagecloud --username=packageuser --token=t0k3n --repository=myrepo --local-dir="${TRAVIS_BUILD_DIR}/pkgs" --dist=ubuntu/precise
1320
+ tbd
663
1321
 
664
- ### Catalyze:
1322
+ Support for deployments to Netlify is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
665
1323
 
666
- #### Options:
1324
+ Options:
667
1325
 
668
- * **target**: Required. The git remote repository to deploy to.
669
- * **path**: Optional. If using the skip_cleanup option to deploy from current file state, you can optionally specify the pathspec for the files to deploy. If not specified then all files are deployed.
1326
+ --site ID A site ID to deploy to (type: string, required: true)
1327
+ --auth TOKEN An auth token to log in with (type: string, required: true)
1328
+ --dir DIR Specify a folder to deploy (type: string)
1329
+ --functions FUNCS Specify a functions folder to deploy (type: string)
1330
+ --message MSG A message to include in the deploy log (type: string)
1331
+ --[no-]prod Deploy to production
670
1332
 
671
- #### Examples:
1333
+ Common Options:
672
1334
 
673
- dpl --provider=catalyze --target=ssh://git@git.catalyzeapps.com:2222/app1234.git
674
- dpl --provider=catalyze --target=ssh://git@git.catalyzeapps.com:2222/app1234.git --skip_cleanup=true
675
- dpl --provider=catalyze --target=ssh://git@git.catalyzeapps.com:2222/app1234.git --skip_cleanup=true --path=build
1335
+ --run CMD Command to execute after the deployment finished successfully (type: array
1336
+ (string, can be given multiple times))
1337
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1338
+ --help Get help on this command
676
1339
 
1340
+ Examples:
677
1341
 
678
- #### Setup:
1342
+ dpl netlify --site id --auth token
1343
+ dpl netlify --site id --auth token --dir dir --functions funcs --message msg
1344
+ ```
679
1345
 
680
- 1. Get the deployment target for Catalyze:
681
- 1. Make sure your catalyze environment is [associated](https://resources.catalyze.io/paas/paas-cli-reference/#associate).
682
- 2. Get the git remote by running ```git remote -v``` from within the associated repo.
683
- 2. Setup a deployment key to Catalyze for Travis CI:
684
- 1. Install the travis-ci cli.
685
- 2. Get the public SSH key for your travis project and save it to a file by running ```travis pubkey > travis.pub```
686
- 3. Add the key as a deploy key using the catalyze cli within the associated repo. For example: ```catalyze deploy-keys add travisci ./travis.pub code-1```
687
- 3. Setup Catalyze as a known host for Travis CI:
688
- 1. List your known hosts by running ```cat ~/.ssh/known_hosts```
689
- 2. Find and copy the line from known_hosts that includes the git remote found in step #1. It'll look something like "[git.catalyzeapps.com]:2222 ecdsa-sha2-nistp256 BBBB12abZmKlLXNo..."
690
- 3. Update your `before_deploy` step in `.travis.yml` to update the `known_hosts` file:
1346
+ ### npm
691
1347
 
692
- ```
693
- before_deploy: echo "[git.catalyzeapps.com]:2222 ecdsa-sha2-nistp256 BBBB12abZmKlLXNo..." >> ~/.ssh/known_hosts
694
- ```
1348
+ ```
1349
+ Usage: dpl npm [options]
695
1350
 
696
- ### Chef Supermarket:
1351
+ Summary:
697
1352
 
698
- #### Options:
1353
+ npm deployment provider
699
1354
 
700
- * **user_id**: Required. The user name at Chef Supermarket.
701
- * **client_key**: Required. The client API key file name.
702
- * **cookbook_category**: Required. The cookbook category in Supermarket (see: https://docs.getchef.com/knife_cookbook_site.html#id12 )
1355
+ Description:
703
1356
 
704
- #### Examples:
1357
+ tbd
705
1358
 
706
- dpl --provider=chef-supermarket --user-id=chef --client-key=.travis/client.pem --cookbook-category=Others
1359
+ Support for deployments to npm is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
707
1360
 
708
- ### Lambda:
1361
+ Options:
709
1362
 
710
- #### Options:
1363
+ --email EMAIL npm account email (type: string)
1364
+ --api_token TOKEN npm api token (type: string, required: true, alias: api_key, note: can be
1365
+ retrieved from your local ~/.npmrc file, see:
1366
+ https://docs.npmjs.com/creating-and-viewing-authentication-tokens)
1367
+ --access ACCESS Access level (type: string, known values: public, private)
1368
+ --registry URL npm registry url (type: string)
1369
+ --src SRC directory or tarball to publish (type: string, default: .)
1370
+ --tag TAGS distribution tags to add (type: string)
1371
+ --[no-]auth_method Authentication method (known values: auth)
711
1372
 
712
- * **access_key_id**: AWS Access Key ID. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
713
- * **secret_access_key**: AWS Secret Key. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
714
- * **region**: AWS Region the Lambda function is running in. Defaults to 'us-east-1'.
715
- * **function_name**: Required. The name of the Lambda being created / updated.
716
- * **role**: Required. The ARN of the IAM role to assign to this Lambda function.
717
- * **handler_name**: Required. The function that Lambda calls to begin execution. For NodeJS, it is exported function for the module.
718
- * **dot_match**: Optional. When `true`, the zipped archive will include the hidden `.*` files. Defaults to `false`.
719
- * **module_name**: Optional. The name of the module that exports the handler. Defaults to `index`.
720
- * **zip**: Optional. Either a path to an existing packaged (zipped or jar file) Lambda, a directory to package, or a single file to package. Defaults to `Dir.pwd`.
721
- * **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"
722
- * **timeout**: Optional. The function execution time at which Lambda should terminate the function. Defaults to 3 (seconds).
723
- * **memory_size**: Optional. The amount of memory in MB to allocate to this Lambda. Defaults to 128.
724
- * **runtime**: Optional. The Lambda runtime to use. Defaults to `node`.
725
- * **publish**: If `true`, a [new version](http://docs.aws.amazon.com/lambda/latest/dg/versioning-intro.html#versioning-intro-publish-version) of the Lambda function will be created instead of replacing the code of the existing one.
726
- * **subnet_ids**: Optional. List of subnet IDs to be added to the function. Needs the `ec2:DescribeSubnets` and `ec2:DescribeVpcs` permission for the user of the access/secret key to work.
727
- * **security_group_ids**: Optional. List of security group IDs to be added to the function. Needs the `ec2:DescribeSecurityGroups` and `ec2:DescribeVpcs` permission for the user of the access/secret key to work.
728
- * **dead_letter_arn**: Optional. ARN to an SNS or SQS resource used for the dead letter queue. [More about DLQs here](https://docs.aws.amazon.com/lambda/latest/dg/dlq.html).
729
- * **tracing_mode**: Optional. "Active" or "PassThrough" only. Default is "PassThrough". Needs the `xray:PutTraceSegments` and `xray:PutTelemetryRecords` on the role for this to work. [More on
730
- Active Tracing here](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html).
731
- * **environment_variables**: Optional. List of Environment Variables to add to the function, needs to be in the format of `KEY=VALUE`. Can be encrypted for added security.
732
- * **kms_key_arn**: Optional. KMS key ARN to use to encrypt `environment_variables`.
733
- * **function_tags**: Optional. List of tags to add to the function, needs to be in the format of `KEY=VALUE`. Can be encrypted for added security.
1373
+ Common Options:
734
1374
 
735
- For a list of all [permissions for Lambda, please refer to the documentation](https://docs.aws.amazon.com/lambda/latest/dg/lambda-api-permissions-ref.html).
1375
+ --run CMD Command to execute after the deployment finished successfully (type: array
1376
+ (string, can be given multiple times))
1377
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1378
+ --help Get help on this command
736
1379
 
737
- #### Examples:
1380
+ Examples:
738
1381
 
739
- Deploy contents of current working directory using default module:
1382
+ dpl npm --api_token token
1383
+ dpl npm --api_token token --email email --access public --registry url --src src
740
1384
  ```
741
- dpl --provider="lambda" \
742
- --access_key_id="${AWS_ACCESS_KEY}" \
743
- --secret_access_key="${AWS_SECRET_KEY}" \
744
- --function_name="test-lambda" \
745
- --role="${AWS_LAMBDA_ROLE}" \
746
- --handler_name="handler";
1385
+
1386
+ ### OpenShift
1387
+
747
1388
  ```
748
- Deploy contents of a specific directory using specific module name:
1389
+ Usage: dpl openshift [options]
1390
+
1391
+ Summary:
1392
+
1393
+ OpenShift deployment provider
1394
+
1395
+ Description:
1396
+
1397
+ tbd
1398
+
1399
+ Support for deployments to OpenShift is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
1400
+
1401
+ Options:
1402
+
1403
+ --server SERVER OpenShift server (type: string, required: true)
1404
+ --token TOKEN OpenShift token (type: string, required: true)
1405
+ --project PROJECT OpenShift project (type: string, required: true)
1406
+ --app APP OpenShift application (type: string, default: repo name)
1407
+
1408
+ Common Options:
1409
+
1410
+ --run CMD Command to execute after the deployment finished successfully (type: array
1411
+ (string, can be given multiple times))
1412
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1413
+ --help Get help on this command
1414
+
1415
+ Examples:
1416
+
1417
+ dpl openshift --server server --token token --project project
1418
+ dpl openshift --server server --token token --project project --app app --run cmd
749
1419
  ```
750
- dpl --provider="lambda" \
751
- --access_key_id="${AWS_ACCESS_KEY}" \
752
- --secret_access_key="${AWS_SECRET_KEY}" \
753
- --function_name="test-lambda" \
754
- --role="${AWS_LAMBDA_ROLE}" \
755
- --zip="${TRAVIS_BUILD_DIR}/dist" \
756
- --module_name="copy" \
757
- --handler_name="handler";
1420
+
1421
+ ### Packagecloud
1422
+
758
1423
  ```
1424
+ Usage: dpl packagecloud [options]
1425
+
1426
+ Summary:
1427
+
1428
+ Packagecloud deployment provider
1429
+
1430
+ Description:
1431
+
1432
+ tbd
1433
+
1434
+ Support for deployments to Packagecloud is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
759
1435
 
760
- ### Launchpad:
1436
+ Options:
761
1437
 
762
- #### Options:
1438
+ --username USER The packagecloud.io username. (type: string, required: true)
1439
+ --token TOKEN The packagecloud.io api token. (type: string, required: true)
1440
+ --repository REPO The repository to push to. (type: string, required: true)
1441
+ --local_dir DIR The sub-directory of the built assets for deployment. (type: string, default: .)
1442
+ --dist DIST Required for debian, rpm, and node.js packages (use "node" for node.js
1443
+ packages). The complete list of supported strings can be found on the
1444
+ packagecloud.io docs. (type: string)
1445
+ --[no-]force Whether package has to be (re)uploaded / deleted before upload
1446
+ --connect_timeout SEC type: integer, default: 60
1447
+ --read_timeout SEC type: integer, default: 60
1448
+ --write_timeout SEC type: integer, default: 180
1449
+ --package_glob GLOB type: array (string, can be given multiple times), default: ["**/*"]
763
1450
 
764
- * **slug**: Required. `~user-name/project-name/branch-name`
765
- * **oauth_token**: Required. Your OAUTH token for Launchpad
766
- * **oauth_token_secret**: Required. Your OAUTH token secret for Launchpad
1451
+ Common Options:
767
1452
 
768
- #### Example:
1453
+ --run CMD Command to execute after the deployment finished successfully (type: array
1454
+ (string, can be given multiple times))
1455
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1456
+ --help Get help on this command
769
1457
 
770
- Deploy contents of current working directory using default module:
1458
+ Examples:
1459
+
1460
+ dpl packagecloud --username user --token token --repository repo
1461
+ dpl packagecloud --username user --token token --repository repo --local_dir dir --dist dist
771
1462
  ```
772
- dpl --provider="launchpad" \
773
- --slug="~user-name/project-name/branch-name" \
774
- --oauth_token="${LAUNCHPAD_OAUTH_TOKEN}" \
775
- --oauth_token_secret="${LAUNCHPAD_OAUTH_TOKEN_SECRET}";
1463
+
1464
+ ### Puppet Forge
1465
+
776
1466
  ```
1467
+ Usage: dpl puppetforge [options]
1468
+
1469
+ Summary:
1470
+
1471
+ Puppet Forge deployment provider
1472
+
1473
+ Description:
1474
+
1475
+ tbd
1476
+
1477
+ Support for deployments to Puppet Forge is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
777
1478
 
778
- ### TestFairy:
1479
+ Options:
779
1480
 
780
- Your Android(apk)/iOS(ipa) file will be uploaded to TestFairy,
781
- and your testers can start testing your app.
1481
+ --username NAME Puppet Forge user name (type: string, required: true, alias: user)
1482
+ --password PASS Puppet Forge password (type: string, required: true)
1483
+ --url URL Puppet Forge URL to deploy to (type: string, default:
1484
+ https://forgeapi.puppetlabs.com/)
782
1485
 
783
- #### Options:
784
- * **api-key**: TestFairy API Key (https://app.testfairy.com/settings/) run "travis encrypt --add deploy.api-key" on your repo.
785
- * **app-file**: Path to the app file that will be generated after the build (APK/IPA).
786
- * **symbols-file**: Path to the symbols file.
787
- * **testers-groups**: You can set a tester group to be notified about this build (group1,group1).
788
- * **notify**: If true, an email you a changelog will be sent to your users.
789
- * **auto-update**: If true, all the previous installations of this app will be automatically all upgraded to this version.
790
- * **video-quality**: Video quality settings, "high", "medium" or "low". Default is "high".
791
- * **screenshot-interval**: You can choose "1"\"2"\"10" sec.
792
- * **max-duration**: Maximum session recording length, eg "20m" or "1h". Default is "10m". Maximum "24h".
793
- * **advanced-options**: For example (option1,option2)
794
- * **data-only-wifi**: If true, video and recorded metrics will be sent only when connected to a wifi network.
795
- * **record-on-background**: If true, data will be collected while the app on background.
796
- * **video**: If true, Video recording settings "true", "false". Default is "true".
797
- * **icon-watermark**: Add a small watermark to app icon. Default is "false".
798
- * **metrics**: Comma-separated list of metrics to record. View list on http://docs.testfairy.com/Upload_API.html.
1486
+ Common Options:
799
1487
 
800
- #### Examples:
1488
+ --run CMD Command to execute after the deployment finished successfully (type: array
1489
+ (string, can be given multiple times))
1490
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1491
+ --help Get help on this command
801
1492
 
802
- dpl --provider=testfairy --api-key=<api-key> --app-file="out/Sample.apk" --keystore-file="out/keystore" --storepass=<storepass> --alias=<alias>
1493
+ Examples:
803
1494
 
804
- ### AWS CodeDeploy:
1495
+ dpl puppetforge --username name --password pass
1496
+ dpl puppetforge --username name --password pass --url url --run cmd --cleanup
1497
+ ```
1498
+
1499
+ ### PyPI
1500
+
1501
+ ```
1502
+ Usage: dpl pypi [options]
805
1503
 
806
- #### Options:
1504
+ Summary:
807
1505
 
808
- * **access_key_id**: AWS Access Key.
809
- * **secret_access_key**: AWS Secret Access Key.
810
- * **application**: CodeDeploy Application Name.
811
- * **deployment_group**: CodeDeploy Deployment Group Name.
812
- * **revision_type**: CodeDeploy Revision Type (S3 or GitHub).
813
- * **commit_id**: Commit ID in case of GitHub.
814
- * **repository**: Repository Name in case of GitHub.
815
- * **bucket**: S3 bucket in case of S3.
816
- * **region**: AWS Availability Zone.
817
- * **wait_until_deployed**: Wait until the app is deployed and return the deployment status (Optional, Default false).
1506
+ PyPI deployment provider
818
1507
 
819
- #### Environment variables:
1508
+ Description:
820
1509
 
821
- * **AWS_ACCESS_KEY_ID**: AWS Access Key ID. Used if the `access_key_id` option is omitted.
822
- * **AWS_SECRET_ACCESS_KEY**: AWS Secret Key. Used if the `secret_access_key` option is omitted.
1510
+ tbd
823
1511
 
824
- #### Examples:
1512
+ Support for deployments to PyPI is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
825
1513
 
826
- 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> --bucket=<bucket name> --commit_id=<commit ID> --repository=<repo name> --region=<AWS availability zone> --wait_until_deployed=<true>
1514
+ Options:
827
1515
 
828
- ### Scalingo:
1516
+ --username NAME PyPI Username (type: string, required: true, alias: user)
1517
+ --password PASS PyPI Password (type: string, required: true)
1518
+ --server SERVER Release to a different index (type: string, default:
1519
+ https://upload.pypi.org/legacy/)
1520
+ --distributions DISTS Space-separated list of distributions to be uploaded to PyPI (type: string,
1521
+ default: sdist)
1522
+ --docs_dir DIR Path to the directory to upload documentation from (type: string, default:
1523
+ build/docs)
1524
+ --[no-]skip_existing Do not overwrite an existing file with the same name on the server.
1525
+ --[no-]upload_docs Upload documentation (default: false, note: most PyPI servers, including
1526
+ upload.pypi.org, do not support uploading documentation)
1527
+ --[no-]twine_check Whether to run twine check (default: true)
1528
+ --[no-]remove_build_dir Remove the build dir after the upload (default: true)
1529
+ --setuptools_version VER type: string, format: /\A\d+(?:\.\d+)*\z/
1530
+ --twine_version VER type: string, format: /\A\d+(?:\.\d+)*\z/
1531
+ --wheel_version VER type: string, format: /\A\d+(?:\.\d+)*\z/
829
1532
 
830
- #### Options:
831
- * **api_key**: scalingo API Key. Not necessary if username and password are used.
832
- * **username**: scalingo username. Not necessary if api_key is used.
833
- * **password**: scalingo password. Not necessary if api_key is used.
834
- * **remote**: Remote url or git remote name of your git repository. By default remote name is "scalingo".
835
- * **branch**: Branch of your git repository. By default branch name is "master".
836
- * **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`
1533
+ Common Options:
837
1534
 
838
- #### Use:
1535
+ --run CMD Command to execute after the deployment finished successfully (type: array
1536
+ (string, can be given multiple times))
1537
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1538
+ --help Get help on this command
839
1539
 
840
- You can connect to Scalingo using your username/password or your api key.
841
- It needs [Scalingo CLI](http://cli.scalingo.com/) which will be [downloaded here](http://cli.scalingo.com/).
842
- Then, it will push your project to Scalingo and deploy it automatically.
1540
+ Examples:
843
1541
 
844
- Note: You only need to connect once to Scalingo CLI, credentials are stored locally.
1542
+ dpl pypi --username name --password pass
1543
+ dpl pypi --username name --password pass --server server --distributions dists --docs_dir dir
1544
+ ```
845
1545
 
846
- #### Examples:
1546
+ ### Rubygems
847
1547
 
848
- dpl --provider=scalingo --api_key="aaAAbbBB0011223344"
849
- dpl --provider=scalingo --username=<username> --password=<password>
1548
+ ```
1549
+ Usage: dpl rubygems [options]
850
1550
 
851
- dpl --provider=scalingo --api_key="aaAAbbBB0011223344" --remote="scalingo-staging"
852
- dpl --provider=scalingo --api_key="aaAAbbBB0011223344" --remote="scalingo-staging" --branch="master"
1551
+ Summary:
853
1552
 
854
- dpl --provider=scalingo
1553
+ Rubygems deployment provider
855
1554
 
856
- ### Script:
1555
+ Description:
857
1556
 
858
- An elementary provider that executes a single command.
1557
+ tbd
859
1558
 
860
- Deployment will be marked a failure if the script exits with nonzero status.
1559
+ Support for deployments to Rubygems is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
861
1560
 
862
- #### Option:
1561
+ Options:
863
1562
 
864
- * **script**: script to execute.
1563
+ Either api_key, or user and password are required.
865
1564
 
866
- #### Example:
1565
+ --api_key KEY Rubygems api key (type: string)
1566
+ --username USER Rubygems user name (type: string, alias: user)
1567
+ --password PASS Rubygems password (type: string)
1568
+ --gem NAME Name of the gem to release (type: string, default: repo name)
1569
+ --gemspec FILE Gemspec file to use to build the gem (type: string)
1570
+ --gemspec_glob GLOB Glob pattern to search for gemspec files when multiple gems are generated in the
1571
+ repository (overrides the gemspec option) (type: string)
1572
+ --host URL type: string
867
1573
 
868
- dpl --provider=script --script=./script/deploy.sh
1574
+ Common Options:
869
1575
 
870
- ### Google App Engine:
1576
+ --run CMD Command to execute after the deployment finished successfully (type: array
1577
+ (string, can be given multiple times))
1578
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1579
+ --help Get help on this command
871
1580
 
872
- Deploys to Google App Engine and Google App Engine Managed VMs via the Google Cloud SDK and
873
- it's [`gcloud` tool](https://cloud.google.com/sdk/gcloud/) using a [Service Account](https://developers.google.com/console/help/new/#serviceaccounts).
874
- 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).
1581
+ Examples:
875
1582
 
876
- #### Options:
1583
+ dpl rubygems --api_key key
1584
+ dpl rubygems --password pass
1585
+ dpl rubygems --api_key key --username user --gem name --gemspec file --gemspec_glob glob
1586
+ ```
877
1587
 
878
- * **project**: [Project ID](https://developers.google.com/console/help/new/#projectnumber) used to identify the project on Google Cloud.
879
- * **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.
880
- * **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))
881
- * **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 app deploy`](https://cloud.google.com/sdk/gcloud/reference/app/deploy)
882
- * **no_promote**: Flag to not promote the deployed version. See [`gcloud app deploy`](https://cloud.google.com/sdk/gcloud/reference/app/deploy)
883
- * **verbosity**: Let's you adjust the verbosity when invoking `"gcloud"`. Defaults to `"warning"`. See [`gcloud`](https://cloud.google.com/sdk/gcloud/reference/).
884
- * **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 app deploy`](https://cloud.google.com/sdk/gcloud/reference/app/deploy)
1588
+ ### Scalingo
885
1589
 
886
- #### Environment variables:
1590
+ ```
1591
+ Usage: dpl scalingo [options]
887
1592
 
888
- * **GOOGLECLOUDPROJECT** or **CLOUDSDK_CORE_PROJECT**: Can be used instead of the `project` option.
889
- * **GOOGLECLOUDKEYFILE**: Can be used instead of the `keyfile` option.
1593
+ Summary:
890
1594
 
891
- #### Example:
1595
+ Scalingo deployment provider
892
1596
 
893
- dpl --provider=gae --project=example --no_promote=true
1597
+ Description:
894
1598
 
895
- ### Firebase:
1599
+ tbd
896
1600
 
897
- #### Options:
1601
+ Support for deployments to Scalingo is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
898
1602
 
899
- * **token**: Your Firebase CI access token (generate with `firebase login:ci`)
900
- * **project**: Deploy to a different Firebase project than specified in your `firebase.json` (e.g. `myapp-staging`)
901
- * **message**: Optional. The message describing this deploy.
1603
+ Options:
902
1604
 
903
- #### Examples:
1605
+ Either api_token, or username and password are required.
904
1606
 
905
- dpl --provider=firebase --token=<token> --project=<project> --message=<message>
1607
+ --app APP type: string, default: repo name
1608
+ --api_token TOKEN Scalingo API token (type: string, alias: api_key (deprecated, please use
1609
+ api_token))
1610
+ --username NAME Scalingo username (type: string)
1611
+ --password PASS Scalingo password (type: string)
1612
+ --region REGION Scalingo region (type: string, default: agora-fr1, known values: agora-fr1,
1613
+ osc-fr1)
1614
+ --remote REMOTE Git remote name (type: string, default: scalingo-dpl)
1615
+ --branch BRANCH Git branch (type: string, default: master)
1616
+ --timeout SEC Timeout for Scalingo CLI commands (type: integer, default: 60)
906
1617
 
1618
+ Common Options:
907
1619
 
1620
+ --run CMD Command to execute after the deployment finished successfully (type: array
1621
+ (string, can be given multiple times))
1622
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1623
+ --help Get help on this command
1624
+
1625
+ Examples:
1626
+
1627
+ dpl scalingo --api_token token
1628
+ dpl scalingo --username name --password pass
1629
+ dpl scalingo --api_token token --app app --region agora-fr1 --remote remote --branch branch
1630
+ ```
1631
+
1632
+ ### Script
1633
+
1634
+ ```
1635
+ Usage: dpl script [options]
1636
+
1637
+ Summary:
1638
+
1639
+ Minimal provider that executes a custom command
1640
+
1641
+ Description:
1642
+
1643
+ This deployment provider executes a single, custom command. This is
1644
+ usually a script that is contained in your repository, but it can be
1645
+ any command executable in the build environment.
1646
+
1647
+ It is possible to pass arguments to a script deployment like so:
1648
+
1649
+ dpl script -s './scripts/deploy.sh production --verbose'
1650
+
1651
+ Deployment will be marked a failure if the script exits with nonzero
1652
+ status.
1653
+
1654
+ Support for deployments to Script is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
1655
+
1656
+ Options:
1657
+
1658
+ -s --script SCRIPT The script to execute (type: string, required: true)
1659
+
1660
+ Common Options:
1661
+
1662
+ --run CMD Command to execute after the deployment finished successfully (type: array
1663
+ (string, can be given multiple times))
1664
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1665
+ --help Get help on this command
1666
+
1667
+ Examples:
1668
+
1669
+ dpl script --script script
1670
+ dpl script --script script --run cmd --cleanup
1671
+ ```
908
1672
 
909
1673
  ### Snap
910
1674
 
911
- Deploys built snaps to the [snap store](https://snapcraft.io/).
1675
+ ```
1676
+ Usage: dpl snap [options]
1677
+
1678
+ Summary:
1679
+
1680
+ Snap deployment provider
912
1681
 
913
- #### Options:
1682
+ Description:
914
1683
 
915
- * **snap** Path (glob) of the snap to be pushed
916
- * **channel** Optional. Channel into which the snap will be released (defaults to `edge`)
917
- * **token** Optional. Login token for the store (generate with `snapcraft export-login`). Falls back to the `$SNAP_TOKEN` environment variable
1684
+ tbd
1685
+
1686
+ Support for deployments to Snap is in development. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
1687
+
1688
+ Options:
1689
+
1690
+ --token TOKEN Snap API token (type: string, required: true)
1691
+ --snap STR Path to the snap to be pushed (can be a glob) (type: string, default: **/*.snap)
1692
+ --channel CHAN Channel into which the snap will be released (type: string, default: edge)
1693
+
1694
+ Common Options:
1695
+
1696
+ --run CMD Command to execute after the deployment finished successfully (type: array
1697
+ (string, can be given multiple times))
1698
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1699
+ --help Get help on this command
1700
+
1701
+ Examples:
1702
+
1703
+ dpl snap --token token
1704
+ dpl snap --token token --snap str --channel chan --run cmd --cleanup
1705
+ ```
918
1706
 
919
- #### Examples:
1707
+ ### Surge
1708
+
1709
+ ```
1710
+ Usage: dpl surge [options]
1711
+
1712
+ Summary:
1713
+
1714
+ Surge deployment provider
1715
+
1716
+ Description:
1717
+
1718
+ tbd
1719
+
1720
+ Support for deployments to Surge is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
1721
+
1722
+ Options:
1723
+
1724
+ --login EMAIL Surge login (the email address you use with Surge) (type: string, required:
1725
+ true)
1726
+ --token TOKEN Surge login token (can be retrieved with `surge token`) (type: string, required:
1727
+ true)
1728
+ --domain NAME Domain to publish to. Not required if the domain is set in the CNAME file in the
1729
+ project folder. (type: string)
1730
+ --project PATH Path to project directory relative to repo root (type: string, default: .)
1731
+
1732
+ Common Options:
1733
+
1734
+ --run CMD Command to execute after the deployment finished successfully (type: array
1735
+ (string, can be given multiple times))
1736
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1737
+ --help Get help on this command
1738
+
1739
+ Examples:
1740
+
1741
+ dpl surge --login email --token token
1742
+ dpl surge --login email --token token --domain name --project path --run cmd
1743
+ ```
1744
+
1745
+ ### TestFairy
1746
+
1747
+ ```
1748
+ Usage: dpl testfairy [options]
1749
+
1750
+ Summary:
1751
+
1752
+ TestFairy deployment provider
1753
+
1754
+ Description:
1755
+
1756
+ Support for deployments to TestFairy is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
1757
+
1758
+ Options:
1759
+
1760
+ --api_key KEY TestFairy API key (type: string, required: true)
1761
+ --app_file FILE Path to the app file that will be generated after the build (APK/IPA) (type:
1762
+ string, required: true)
1763
+ --symbols_file FILE Path to the symbols file (type: string)
1764
+ --testers_groups GROUPS Tester groups to be notified about this build (type: string, e.g.: e.g.
1765
+ group1,group1)
1766
+ --[no-]notify Send an email with a changelog to your users
1767
+ --[no-]auto_update Automaticall upgrade all the previous installations of this app this version
1768
+ --advanced_options OPTS Comma_separated list of advanced options (type: string, e.g.: option1,option2)
1769
+
1770
+ Common Options:
1771
+
1772
+ --run CMD Command to execute after the deployment finished successfully (type: array
1773
+ (string, can be given multiple times))
1774
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1775
+ --help Get help on this command
1776
+
1777
+ Examples:
1778
+
1779
+ dpl testfairy --api_key key --app_file file
1780
+ dpl testfairy --api_key key --app_file file --symbols_file file --testers_groups groups --notify
1781
+ ```
1782
+
1783
+ ### Transifex
1784
+
1785
+ ```
1786
+ Usage: dpl transifex [options]
920
1787
 
921
- dpl --provider=snap --token=<token> --snap=my.snap --channel=edge
1788
+ Summary:
922
1789
 
1790
+ Transifex deployment provider
923
1791
 
1792
+ Description:
924
1793
 
925
- ### Surge.sh
1794
+ tbd
926
1795
 
927
- #### Options:
1796
+ Support for deployments to Transifex is in alpha. Please see here: https://github.com/travis-ci/dpl/#maturity-levels
928
1797
 
929
- * **project** Path to project folder relative to repo root. Defaults to repo root if not set.
930
- * **domain** Domain to publish to. Can be omitted if domain is set in the `CNAME` file in the project folder.
1798
+ Options:
931
1799
 
1800
+ Either api_token, or username and password are required.
1801
+
1802
+ --api_token TOKEN Transifex API token (type: string)
1803
+ --username NAME Transifex username (type: string)
1804
+ --password PASS Transifex password (type: string)
1805
+ --hostname NAME Transifex hostname (type: string, default: www.transifex.com)
1806
+ --cli_version VER CLI version to install (type: string, default: >=0.11)
1807
+
1808
+ Common Options:
1809
+
1810
+ --run CMD Command to execute after the deployment finished successfully (type: array
1811
+ (string, can be given multiple times))
1812
+ --[no-]cleanup Skip cleaning up build artifacts before the deployment
1813
+ --help Get help on this command
1814
+
1815
+ Examples:
1816
+
1817
+ dpl transifex --api_token token
1818
+ dpl transifex --username name --password pass
1819
+ dpl transifex --api_token token --hostname name --cli_version ver --run cmd --cleanup
1820
+ ```
1821
+
1822
+ ## Contributing to Dpl
1823
+
1824
+ ### Table of Contents
1825
+
1826
+ * [Resources](#resources)
1827
+ * [Navigating the Codebase](#navigating-the-codebase)
1828
+ * [Lifecycle of the Deployment Process](#lifecycle-of-the-deployment-process)
1829
+ * [Deployment Tooling](#deployment-tooling)
1830
+ * [Runtime Dependencies](#runtime-dependencies)
1831
+ * [Unit Tests](#unit-tests)
1832
+ * [Runtime Dependency Installation Tests](#runtime-dependency-installation-tests)
1833
+ * [Integration Tests](#integration-tests)
1834
+ * [Testing Dpl Branches or Forks on Travis CI](#testing-dpl-branches-or-forks-on-travis-ci)
1835
+ * [Code Conventions](#code-conventions)
1836
+ * [Naming Conventions](#naming-conventions)
1837
+ * [Updating the README](#updating-the-readme)
1838
+
1839
+ Dpl is a central component in Travis CI, and has been around for a long time.
1840
+
1841
+ This library always has been a community effort first. There probably is not a
1842
+ single person in the world who is very familiar with all deployment providers
1843
+ supported by Dpl.
1844
+
1845
+ *Thank you all for this!*
1846
+
1847
+ This document is for you if you are looking to contribute to dpl, be it by
1848
+ adding a new deployment provider, fixing a bug, or adding a new feature.
1849
+
1850
+ Dpl has a [code of conduct](CODE_OF_CONDUCT.md), please follow it in all
1851
+ interactions with the project.
1852
+
1853
+ Dpl is written in Ruby, and we assume that you familiarize yourself with our
1854
+ documentation as much as needed.
1855
+
1856
+ ### Resources
1857
+
1858
+ Hopefully helpful resources are:
1859
+
1860
+ * This [document](CONTRIBUTING.md)
1861
+ * The [dpl README](README.md)
1862
+ * The [dpl API docs](https://www.rubydoc.info/github/travis-ci/dpl) on rubydocs.info
1863
+ * The [cl README](https://github.com/svenfuchs/cl/blob/master/README.md)
1864
+
1865
+ ### Navigating the Codebase
1866
+
1867
+ All provider specific classes live in [dpl/providers](lib/dpl/providers).
1868
+ These represent the CLI commands that are executed when the command line
1869
+ exectuable `dpl` is run with a given provider name as the first argument.
1870
+
1871
+ Each provider is a subclass of `Dpl::Provider`, which is defined in
1872
+ [dpl/provider.rb](lib/dpl/provider.rb). The provider base class itself
1873
+ subclasses from `Cl::Cmd`, so it represents an executable sub command of the
1874
+ main command `dpl`.
1875
+
1876
+ For instance, the command `dpl s3 --bucket bucket` instantiates and runs the
1877
+ provider class [S3](lib/dpl/providers/s3.rb).
1878
+
1879
+ The class `Cl::Cmd` contributes the command line options parser, and its
1880
+ class level DSL. Please see the [cl README](https://github.com/svenfuchs/cl/blob/master/README.md)
1881
+ for this DSL, and the [S3 provider](/lib/dpl/provider/s3.rb)
1882
+ for an example how dpl uses it.
1883
+
1884
+ The class `Dpl::Provider` adds, amongst other things, the order of stages
1885
+ (methods) that make up the deployment process:
1886
+
1887
+ * `init`
1888
+ * `install`
1889
+ * `login`
1890
+ * `setup`
1891
+ * `validate`
1892
+ * `prepare`
1893
+ * `deploy`
1894
+ * `finish`
1895
+
1896
+ Implementors of concrete provider classes may or may not choose to implement
1897
+ any of these instance methods according to their needs, and semantics of their
1898
+ tooling and service providers. Please refer to [Dpl::Provider](/lib/dpl/provider.rb)
1899
+ for details.
1900
+
1901
+ The DSL that is used to declare features, dependencies, environment integration
1902
+ etc. on the concrete provider classes is defined in the module
1903
+ `Dpl::Provider::DSL`, in [dpl/provider/dsl](/lib/dpl/provider/dsl.rb).
1904
+
1905
+ Also of interest is [Dpl::Ctx::Bash](/lib/dpl/ctx/bash.rb),
1906
+ the Bash execution context, that runs shell commands, installs dependencies
1907
+ etc. (while the `Test` context class is used for testing in order to keep your
1908
+ development machine clean and safe when you run tests locally).
1909
+
1910
+ ```
1911
+ lib
1912
+ └── dpl
1913
+ ├── assets # Stores larger shell scripts
1914
+ ├── ctx
1915
+ │   ├── bash.rb # Bash execution context
1916
+ │   └── test.rb # Test execution context
1917
+ ├── provider.rb # Base class for all providers
1918
+ ├── provider
1919
+ │   ├── dsl.rb # DSL for defining providers
1920
+ │   └── example.rb # Generating example commands for help output
1921
+ └── providers
1922
+    ├── anynines.rb # Concrete providers
1923
+    ├── atlas.rb
1924
+    ├── azure_webapps.rb
1925
+    ├── bintray.rb
1926
+    ├── bitballoon.rb
1927
+    └── ⋮
1928
+ ```
1929
+
1930
+ ### Lifecycle of the Deployment Process
1931
+
1932
+ When a provider class is instantiated and run it will go through a number
1933
+ of stages that make up the deployment process.
1934
+
1935
+ These are documented in [dpl/provider.rb](/lib/dpl/provider.rb).
1936
+ If you are adding a new deployment provider please familiarize youself with
1937
+ this lifecycle.
1938
+
1939
+ Feel free to pick and interpret these stages according to the needs and
1940
+ semantics of the service provider you are adding. By no means do all of these
1941
+ stages have to be filled in or implmented. The `Provider` base class checks for
1942
+ these methods, and runs them, if present, so that implementors can choose
1943
+ semantically fitting names for their providers.
1944
+
1945
+ ### Deployment Tooling
1946
+
1947
+ If you are adding a new deployment provider please choose the tooling you are
1948
+ going to use carefully.
1949
+
1950
+ Dpl is a long lived library, and it has outlived many tools that once were
1951
+ supported, and no longer are. Thus tooling stability is a major concern for
1952
+ this project.
1953
+
1954
+ Ideally use official CLI tooling supported by the company who's service
1955
+ provider you are about to add. Often, such CLI tools can be installed via
1956
+ standard package managers, or manually downloaded using `curl` and installed
1957
+ with a few simple Bash commands.
1958
+
1959
+ Such CLI tooling is preferrable over Ruby gem runtime dependencies as they can
1960
+ be executed in a child process, and won't introduce any dependency resolution
1961
+ problems later on.
1962
+
1963
+ If no such CLI is available, or it does not look well supported, and your
1964
+ provider implementation needs to talk to an external HTTP API then please consider
1965
+ using [Net::HTTP](https://ruby-doc.org/stdlib-2.6.3/libdoc/net/http/rdoc/Net/HTTP.html)
1966
+ from Ruby's standard library.
1967
+
1968
+ If you absolutely have to rely on a runtime Ruby gem dependency, such as a
1969
+ provider client implementation, please only do so if the gem is supported by
1970
+ the respective company officially. We may choose to reject including runtime
1971
+ dependencies that do not look stable or widely supported.
1972
+
1973
+ ### Runtime Dependencies
1974
+
1975
+ Runtime dependencies can be declared on the provider class using the
1976
+ [DSL](lib/dpl/provider/dsl.rb).
1977
+
1978
+ In the case of APT, NPM, and Pip dependencies these will be installed via
1979
+ shell commands at the beginning of the deployment process.
1980
+
1981
+ Ruby gem dependencies will be installed using Bundler's [inline API](https://github.com/bundler/bundler/blob/master/lib/bundler/inline.rb),
1982
+ at the beginning of the deployment process, so they are available in the same
1983
+ Ruby process from then on.
1984
+
1985
+ ### Unit Tests
1986
+
1987
+ `Dpl` uses [RSpec](https://github.com/rspec) for tests. The specs reside in
1988
+ `spec`, and each provider class has a corresponding file
1989
+ `spec/dpl/providers/*_spec.rb` to hold tests.
1990
+
1991
+ Provider tests should be implemented on an input/output acceptance level, as
1992
+ much as possible.
1993
+
1994
+ They use a [Ctx::Test](blob/masterlib/dpl/ctx/test.rb) execution context in
1995
+ order to avoid running actual shell commands, or actually installing
1996
+ dependencies at test time. There are custom [RSpec matchers](spec/support/matchers)
1997
+ in place that help with making assertions against this execution context.
1998
+
1999
+ If your provider has to talk to an external HTTP API then ideally use
2000
+ [Webmock](https://github.com/bblimke/webmock) to stub external requests. If by
2001
+ any means possible try to avoid mocking or stubbing Ruby client classes (this
2002
+ is not always possible, but should be considered).
2003
+
2004
+ #### Running Unit Tests Locally
2005
+
2006
+ You can run the unit test suite locally as follows:
2007
+
2008
+ ```
2009
+ bundle install
2010
+ bundle exec rspec
2011
+ ```
2012
+
2013
+ In order to execute tests only for a certain provider you can run:
2014
+
2015
+ ```
2016
+ bundle exec rspec spec/dpl/providers/[provider]_spec.rb
2017
+ ```
2018
+
2019
+ In order to execute a single test or group of tests add a line number like so:
2020
+
2021
+ ```
2022
+ bundle exec rspec spec/dpl/providers/[provider]_spec.rb:25
2023
+ ```
2024
+
2025
+ These tests can be run safely on any development machine, anywhere.
2026
+
2027
+ ### Runtime Dependency Installation Tests
2028
+
2029
+ We additionally run tests that exercise runtime dependency installation on
2030
+ Travis CI.
2031
+
2032
+ These live in [.travis/test_install.rb](.travis/test_install.rb). It is not
2033
+ advisable to run these tests outside of an ephemeral VM or container that can
2034
+ be safely discarded, as they are going to leave various artifacts around.
2035
+
2036
+ ### Integration Tests
2037
+
2038
+ In order to ensure proper integration with the service providers supported
2039
+ we also periodically run a test suite that exercises actual deployments to
2040
+ these providers.
2041
+
2042
+ These tests live in [.travis/providers](/.travis/providers), and the are
2043
+ triggered using the script [trigger](/.travis/trigger).
2044
+
2045
+ An integration test consists of:
2046
+
2047
+ * A setup script that creates an application (or artifact) to deploy (or
2048
+ upload).
2049
+ * A YAML config snippet that configures and triggers the deployment as part of
2050
+ a build on Travis CI.
2051
+ * A test script that tests if the deployment was successful.
2052
+
2053
+ For example:
2054
+
2055
+ * [github-pages/prepare](/.travis/providers/github-pages/prepare)
2056
+ creates a minimal Git repository that serves an `index.html` on GitHub Pages in a temporary directory.
2057
+ * [github-pages/travis.yml](/.travis/providers/github-pages/travis.yml)
2058
+ configures the build to use Dpl 2.0 to deploy this repository to GitHub Pages.
2059
+ * [github-pages/test](/.travis/providers/github-pages/test)
2060
+ tests if the deployment was successful.
2061
+
2062
+ The tests can be run on Travis CI individually, or combined, by triggering a
2063
+ build via our API, using the script [.travis/trigger](/.travis/trigger).
2064
+ This takes a provider name as an argument, and requires a Travis CI API token.
2065
+
2066
+ For example, this triggers a build that executes the GitHub Pages test on
2067
+ Travis CI:
2068
+
2069
+ ```
2070
+ .travis/trigger github-pages --token [token]
2071
+ ```
2072
+
2073
+ The token can also be set as an environment variable:
2074
+
2075
+ ```
2076
+ export TRAVIS_API_TOKEN=[token]
2077
+ .travis/trigger github-pages
2078
+ ```
2079
+
2080
+ The `trigger` script accepts multiple provider names as arguments. If no
2081
+ arguments are given then tests for all providers will be run.
2082
+
2083
+ #### Integration Test Configuration
2084
+
2085
+ In the build config YAML snippet make sure to use the branch of your fork for the
2086
+ deployment tooling, and allow the deployment to run on your branch:
2087
+
2088
+ ```yaml
2089
+ deploy:
2090
+ - provider: [name]
2091
+ edge:
2092
+ source: [your-login]/dpl
2093
+ branch: [your-branch]
2094
+ on:
2095
+ branch: [your-branch]
2096
+ ```
2097
+
2098
+ Ideally use credentials for an isolated account on the service you are deploying to.
2099
+ This is generally good practice, and way you can hand things off to someone else.
2100
+
2101
+ In order to get things working encrypt the credentials against your fork, and
2102
+ add them to the build config YAML snippet. If you are in the root directory
2103
+ of your fork then this command should do the trick:
2104
+
2105
+ ```
2106
+ travis encrypt password=[password]
2107
+ ```
2108
+
2109
+ If you do not have the `travis` CLI installed you can install it using:
2110
+
2111
+ ```
2112
+ gem install travis
2113
+ ```
2114
+
2115
+ When you add encrypted credentials to the build config YAML snippet also add a comment
2116
+ that allows others to identify the account used. E.g:
2117
+
2118
+ ```yaml
2119
+ deploy:
2120
+ - provider: pages
2121
+ github_token:
2122
+ # personal access token with repo scope on the account [name]
2123
+ secure: "[encrypted token]"
2124
+ ```
2125
+
2126
+ Open a pull request. In order for us to merge your test, and get it working on
2127
+ our repository you will need to re-encrypt the credentials against
2128
+ `travis-ci/dpl`, like so:
2129
+
2130
+ ```
2131
+ travis encrypt -r travis-ci/dpl password=[password]
2132
+ ```
2133
+
2134
+ Whatever minimal deployment you can get working is be a great contribution.
2135
+ Even if for some reason it proves hard to test the deployment in an automated
2136
+ fashion, but you have a successful deployment that can be verified manually,
2137
+ please still open a pull request, and talk to us. Any test is better than no
2138
+ test.
2139
+
2140
+ ### Testing Dpl Branches or Forks on Travis CI
2141
+
2142
+ It is possible to test a new deployment provider or new functionality of dpl on
2143
+ Travis CI. In order to do so, add proper configuraiton on the `edge` key to
2144
+ your `.travis.yml` like so:
2145
+
2146
+ ```yaml
2147
+ deploy:
2148
+ provider: [name]
2149
+ edge:
2150
+ source: [github-handle]/dpl
2151
+ branch: [branch]
2152
+ on:
2153
+ branch: TEST_BRANCH # or all_branches: true
2154
+ ⋮ # rest of your provider's configuration
2155
+ ```
2156
+
2157
+ This builds the `dpl` gem on the Travis CI build environment from your
2158
+ repository, on the given branch. Then it installs the gem built from this code
2159
+ base, and uses it to run your deployment.
2160
+
2161
+ When submitting a pull request, please be sure to run at least one deployment
2162
+ with the new configuration, and provide a link to the build in your pull
2163
+ request.
2164
+
2165
+ ### Code Conventions
2166
+
2167
+ Dpl does not follow any strict code styleguide.
2168
+
2169
+ Please take a look around other providers, and try to follow a similar code
2170
+ style to what you find.
2171
+
2172
+ Try to use the [DSL](/lib/dpl/provider/dsl.rb) as much
2173
+ as possible. It keeps the code declarative and readable, so that people not
2174
+ familiar with Ruby or programming in general can still follow it, and make
2175
+ sense of it.
2176
+
2177
+ If you find yourself trying to achieve something that should be, but is not
2178
+ supported by the DSL please [open an issue](https://github.com/travis-ci/dpl/issues/new)
2179
+ about it.
2180
+
2181
+ If you are rather unfamiliar with Ruby, and have trouble following our code
2182
+ style then please submit your pull request anyway, or get in touch, so we can
2183
+ help.
2184
+
2185
+ ### Naming Conventions
2186
+
2187
+ Dpl uses constant names following Ruby naming conventions. I.e. constant
2188
+ names use `CamelCase`, and they live in files named in `snake_case.rb`.
2189
+
2190
+ If you pick such names for a new provider please try to follow these
2191
+ conventions.
2192
+
2193
+ Real world service provider or company names do not always translate to such
2194
+ conventional Ruby names one-to-one. That is ok, they don't have to. These Ruby
2195
+ constant names are representations of real world service and company names in
2196
+ Ruby code.
2197
+
2198
+ Other Ruby libraries often (not always) follow a similar thinking. E.g.
2199
+ even though Amazon Web Services brand name is `AWS` the module name
2200
+ they chose in their [aws-sdk](https://github.com/aws/aws-sdk-ruby) is
2201
+ `Aws`, not `AWS`.
2202
+
2203
+ ### Updating the README
2204
+
2205
+ The [README](/README.md) is generated from a
2206
+ [template](/lib/dpl/assets/dpl/README.erb.md).
2207
+
2208
+ In order to update the README please edit the template, and run:
2209
+
2210
+ ```
2211
+ gem install ffi-icu
2212
+ bin/readme > README.md
2213
+ ```
932
2214
 
933
- #### Environment variables:
934
2215
 
935
- * **SURGE_LOGIN**: Set it to the email address you use with Surge
936
- * **SURGE_TOKEN**: Set it to your login token (get it by doing a `surge token`)
2216
+ ## Old Issues
937
2217
 
938
- #### Example:
939
- dpl --provider=surge --project=<project-path> --domain=<domain-name>
2218
+ If an issue has been left open and untouched for 90 days or more, we
2219
+ automatically close them. We do this to ensure that new issues are more easily
2220
+ noticeable, and that old issues that have been resolved or are no longer
2221
+ relevant are closed. You can read more about this [here](https://blog.travis-ci.com/2018-03-09-closing-old-issues).
940
2222
 
941
- ### Bluemix Cloud Foundry:
2223
+ ## Code of Conduct
942
2224
 
943
- #### Options:
2225
+ Please see [our code of conduct](CODE_OF_CONDUCT.md) for how to interact with
2226
+ this project and its community.
944
2227
 
945
- * **username**: Bluemix username.
946
- * **password**: Bluemix password.
947
- * **organization**: Bluemix target organization.
948
- * **space**: Bluemix target space
949
- * **region**: Bluemix region [ng, eu-gb, eu-de, au-syd]. Optional, default US region (ng).
950
- * **api**: Bluemix api URL. Optional for Bluemix dedicated. Explicit **api** setting precedence over **region** setting.
951
- * **app_name**: Application name. Optional.
952
- * **manifest**: Path to manifest file. Optional.
953
- * **skip_ssl_validation**: Skip ssl validation. Optional.
2228
+ ## License
954
2229
 
955
- #### Examples:
2230
+ Dpl is licensed under the [MIT License](https://github.com/travis-ci/dpl/blob/master/LICENSE).
956
2231
 
957
- dpl --provider=bluemixcloudfoundry --username=<username> --password=<password> --organization=<organization> --region=<region> --space=<space> --skip-ssl-validation
2232
+ ## Credits
958
2233
 
959
- ## `dpl` and `sudo`
2234
+ This tool would not exist without your help.
960
2235
 
961
- `dpl` installs deployment provider code as the user invoking
962
- `dpl` at run time, if it is not available.
963
- This causes [a problem](https://github.com/travis-ci/dpl/issues/769)
964
- if you invoke `dpl` via `dpl`, where the process instaling the
965
- provider code may not have sufficient permissions.
2236
+ A huge thank you goes out to all of our current and past [contributors](https://github.com/travis-ci/dpl/graphs/contributors):
966
2237
 
967
- In this case, you can install the provider gem (of the same version as
968
- `dpl`) with `sudo` beforehand to work around this issue.
2238
+ 5c077yP, A.J. May, A92hm, Aakriti Gupta, Aaron Hill, Aaron1011, Abdón Rodríguez Davila, Adam King, Adam Mcgrath, adinata, Adrian Moreno, Ahmad Nassri, Ahmed Refaey, Ainun Nazieb, Albertin Loic, Alexander Springer, Alexey Kotlyarov, Ali Hajimirza, Amos Wenger, Anders Olsen Sandvik, Andrey Lushchick, Andy Vanbutsele, Angelo Livanos, Anne-Julia Seitz, Antoine Savignac, Anton Babenko, Anton Ilin, Arnold Daniels, Ashen Gunaratne, awesomescot, Axel Fontaine, Baptiste Courtois, Ben Hale, Benjamin Guttmann, Bob, Bob Zoller, Brad Gignac, Brandon Burton, Brandon LeBlanc, Brian Hou, Cameron White, capotej, Carla, carlad, Chad Engler, Chathan Driehuys, Christian Elsen, Christian Rackerseder, Clay Reimann, cleem, Cryptophobia, Damien Mathieu, Dan Buch, Dan Powell, Daniel X Moore, David F. Severski, Denis Cornehl, Dennis Koot, Devin J. Pohly, Dominic Jodoin, Dwayne Forde, emdantrim, Eric Peterson, Erik Dalén, Esteban Santiesteban, Étienne Michon, eyalbe4, Fabio Napoleoni, Felix Rieseberg, fgogolli, Filip Š, Flamur Gogolli, Gabriel Saldana, George Brighton, Gil, Gil Megidish, Gil Tselenchuk, Hao Luo, Hauke Stange, Henrik Hodne, Hiro Asari, IMANAKA, Kouta, Ivan Evtuhovich, Ivan Kusalic, Ivan Pozdeev, Jacob Burkhart, Jake Hewitt, Jakub Holy, James Adam, James Awesome, James Parker, Janderson, Jannis Leidel, Jeffrey Yasskin, Jeremy Frasier, Joe Damato, Joep van Delft, Johannes Würbach, johanneswuerbach, Johnny Dobbins, Jon Benson, Jon Rowe, Jon-Erik Schneiderhan, Jonatan Männchen, Jonathan Stites, Jonathan Sundqvist, jorgecasar, Josh Kalderimis, joshua-anderson, Jouni Kaplas, Julia S.Simon, Julio Capote, jung_b@localhost, Karim Fateem, Ke Zhu, konrad-c, Konstantin Haase, Kouta Imanaka, Kristofer Svardstal, Kyle Fazzari, Kyle VanderBeek, Loïc Mahieu, Lorenz Leutgeb, Lorne Currie, Louis Lagrange, Louis St-Amour, Luke Yeager, Maciej Skierkowski, María de Antón, mariadeanton, Mariana Lenetis and Zachary Gershman, Marius Gripsgard, Mark Pundsack, marscher, Marwan Rabbâa, Mathias Meyer, Mathias Rangel Wulff, Mathias San Miguel, Matt Hernandez, Matt Knox, Matt Travi, Matthew Knox, Maxime Brugidou, mayeut, Meir Gottlieb, Michael Bleigh, Michael Dunn, Michael Friis, Michel Boudreau, Mike Bryant, Nat Welch, Nicholas Bruning, Nick Mohoric, Nico Lindemann, Nigel Ramsay, Ole Michaelis, Omer Katz, Patrique Legault, Paul Beaudoin, Paul Nikitochkin, Peter, Peter Georgantas, Peter Newman, Philipp Hansch, Piotr Sarnacki, Rail Aliiev, Randall A. Gordon, Robert Gogolok, Rokas Brazdžionis, Romuald Bulyshko, ryanj, Ryn Daniels, Samir Talwar, Samuel Wright, Sandor Zeestraten, SAULEAU Sven, Scot Spinner, Sebastien Estienne, Sergei Chertkov, shunyi, Simon, Solly, Sorin Sbarnea, Soulou, Stefan Kolb, Steffen Kötte, step76, Steven Berlanga, Sven Fuchs, Sviatoslav Sydorenko, testfairy, Tim Ysewyn, Troels Thomsen, Tyler Cross, Uriah Levy, Vincent Jacques, Vojtech Vondra, Vojtěch Vondra, Wael M. Nasreddine, Wim Looman, Xavier Krantz, yeonhoyoon, Zane Williamson