{"id":13452370,"url":"https://github.com/travis-ci/dpl","last_synced_at":"2025-05-08T23:34:54.312Z","repository":{"id":8658771,"uuid":"10312708","full_name":"travis-ci/dpl","owner":"travis-ci","description":"Dpl (dee-pee-ell) is a deploy tool made for continuous deployment.","archived":false,"fork":false,"pushed_at":"2025-04-07T12:19:36.000Z","size":4642,"stargazers_count":1292,"open_issues_count":66,"forks_count":366,"subscribers_count":46,"default_branch":"master","last_synced_at":"2025-05-07T10:38:22.884Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"commsy/commsy","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/travis-ci.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2013-05-27T10:26:39.000Z","updated_at":"2025-05-03T23:28:25.000Z","dependencies_parsed_at":"2023-02-10T17:00:18.369Z","dependency_job_id":"1b918067-38a6-479d-ae93-80fc387fec72","html_url":"https://github.com/travis-ci/dpl","commit_stats":{"total_commits":2164,"total_committers":221,"mean_commits":9.79185520361991,"dds":0.7204251386321627,"last_synced_commit":"77effe04e791dc724a6f43637b08330c19b49c97"},"previous_names":[],"tags_count":182,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/travis-ci%2Fdpl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/travis-ci%2Fdpl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/travis-ci%2Fdpl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/travis-ci%2Fdpl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/travis-ci","download_url":"https://codeload.github.com/travis-ci/dpl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252959641,"owners_count":21831894,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T07:01:22.167Z","updated_at":"2025-05-07T21:38:02.006Z","avatar_url":"https://github.com/travis-ci.png","language":"Ruby","funding_links":[],"categories":["others","Ruby"],"sub_categories":[],"readme":"# 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.svg)](https://codeclimate.com/github/travis-ci/dpl) [![Coverage Status](https://coveralls.io/repos/travis-ci/dpl/badge.svg?branch=master\u0026service=github\u0026cache=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)\n\nThis version of the README documents dpl v2, the next major version of dpl.\nThe README for dpl v1, the version that is currently used in production on\nTravis CI can be found [here](https://github.com/travis-ci/dpl/blob/v1/README.md).\n\nDpl is command line tool for deploying code, html, packages, or build artifacts\nto various service providers.\n\nIt is tightly integrated into Travis CI's [deployment integration](https://docs.travis-ci.com/user/deployment),\nbut also used, and recommended by others, such as [GitLab](https://docs.gitlab.com/ee/ci/examples/deployment/).\n\nIt is maintained by Travis CI, largely community driven, and it has existed\nsince 2013. If you find support your preferred deployment target missing,\nplease do not hesitate to get in touch, and we'll help you [add it](#contributing-to-dpl).\n\n## Table of Contents\n\n* [Requirements](#requirements)\n* [Installation](#installation)\n* [Usage](#usage)\n* [Maturity Levels](#maturity-levels)\n* [Supported Providers](#supported-providers)\n* [Contributing to Dpl](#contributing-to-dpl)\n* [Old Issues](#old-issues)\n* [Code of Conduct](#code-of-conduct)\n* [License](#license)\n* [Credits](#credits)\n\n## Requirements\n\nDpl requires Ruby 2.3 or later.\n\nDepending on the deployment target dpl might require additional runtimes (e.g.\nGo, Node.js, or Python) to be installed. It also might require sudo access in\norder to install a Debian package.\n\nDpl is generally optimized for usage on Linux systems.\n\n## Installation\n\nThis version of dpl is currently released as an `alpha` preview release. In\norder to install it, add the `--pre` flag:\n\n```\ngem install dpl --pre\n```\n\n## Usage\n\nDpl is meant and optimized for usage in ephemeral build environments, such\nas Travis CI, or any other CI/CD pipeline.\n\nDpl is integrated to Travis CI's build configuration and build script compilation\ntooling, so all you need to do is add the proper configuration to your `.travis.yml`\nfile. Please refer to [the documentation](https://docs.travis-ci.com/user/deployment)\nfor details.\n\nFor usage outside of Travis CI dpl can be executed as follows. Please refer to\nthe respective [providers](#supported-providers) for details.\n\n```\ndpl [provider] [options]\n```\n\nDpl can be used locally, e.g. on your development machine, but it might leave\nartifacts that may alter the behaviour of your system. If you encounter this\nbehaviour and it presents a serious issue to you then please open an\n[issue](https://github.com/travis-ci/dpl/issues/new).\n\n### Cleaning up the Git working directory\n\nDpl v1 has cleaned up the Git working directory by default, using `git stash\n--all`. The default for this option has been changed in dpl v2, and users now\nneed to opt in to cleaning up any left over artifacts from the build process\nby passing the option `--cleanup`.\n\nThe status of the working directory is relevant only to providers that package\nand push it to the respective remote service (e.g. `heroku` when using the\n`api` strategy, package registry providers, etc.). Most providers will either\npush the latest Git commit, or pull code from a remote repository.\n\n## Maturity Levels\n\nIn order to communicate the current development status and maturity of dpl's\nsupport for a particular service the respective provider is marked with one of\nthe following maturity levels, according to the given criteria:\n\n* `dev` - the provider is in development (initial level)\n* `alpha` - the provider is fully tested\n* `beta` - the provider has been in alpha for at least a month, and successful real-world production deployments have been observed\n* `stable` - the provider has been in beta for at least a month, and there are no open issues that qualify as critical (such as deployments failing, documented functionality broken, etc)\n\n## Supported Providers\n\nDpl supports the following providers:\n\n  * [Anynines](#anynines)\n  * [AWS CloudFormation](#aws-cloudformation)\n  * [AWS Code Deploy](#aws-code-deploy)\n  * [AWS ECR](#aws-ecr)\n  * [AWS Elastic Beanstalk](#aws-elastic-beanstalk)\n  * [AWS Lambda](#aws-lambda)\n  * [AWS OpsWorks](#aws-opsworks)\n  * [AWS S3](#aws-s3)\n  * [Azure Web Apps](#azure-web-apps)\n  * [Bintray](#bintray)\n  * [Bluemix Cloud Foundry](#bluemix-cloud-foundry)\n  * [Boxfuse](#boxfuse)\n  * [Cargo](#cargo)\n  * [Chef Supermarket](#chef-supermarket)\n  * [Cloud Files](#cloud-files)\n  * [Cloud Foundry](#cloud-foundry)\n  * [Cloud66](#cloud66)\n  * [Convox](#convox)\n  * [Datica](#datica)\n  * [Engineyard](#engineyard)\n  * [Firebase](#firebase)\n  * [Flynn](#flynn)\n  * [Git (push)](#git-push)\n  * [GitHub Pages](#github-pages)\n  * [GitHub Pages (API)](#github-pages-api)\n  * [GitHub Releases](#github-releases)\n  * [Gleis](#gleis)\n  * [Google App Engine](#google-app-engine)\n  * [Google Cloud Store](#google-cloud-store)\n  * [Hackage](#hackage)\n  * [Hephy](#hephy)\n  * [Heroku API](#heroku-api)\n  * [Heroku Git](#heroku-git)\n  * [Launchpad](#launchpad)\n  * [Netlify](#netlify)\n  * [npm](#npm)\n  * [nuget](#nuget)\n  * [OpenShift](#openshift)\n  * [Packagecloud](#packagecloud)\n  * [Puppet Forge](#puppet-forge)\n  * [PyPI](#pypi)\n  * [Rubygems](#rubygems)\n  * [Scalingo](#scalingo)\n  * [Script](#script)\n  * [Snap](#snap)\n  * [Surge](#surge)\n  * [TestFairy](#testfairy)\n  * [Transifex](#transifex)\n\n\n### Anynines\n\nSupport for deployments to Anynines is in **alpha**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl anynines [options]\n\nSummary:\n\n  Anynines deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --username USER         anynines username (type: string, required)\n  --password PASS         anynines password (type: string, required)\n  --organization ORG      anynines organization (type: string, required)\n  --space SPACE           anynines space (type: string, required)\n  --app_name APP          Application name (type: string)\n  --buildpack PACK        Buildpack name or Git URL (type: string)\n  --manifest FILE         Path to the manifest (type: string)\n\nCommon Options:\n\n  --cleanup               Clean up build artifacts from the Git working directory before the deployment\n  --run CMD               Commands to execute after the deployment finished successfully (type: array\n                          (string, can be given multiple times))\n  --help                  Get help on this command\n\nExamples:\n\n  dpl anynines --username user --password pass --organization org --space space\n  dpl anynines --username user --password pass --organization org --space space --app_name app\n```\n\nOptions can be given via env vars if prefixed with `ANYNINES_`. E.g. the option `--password` can be\ngiven as `ANYNINES_PASSWORD=\u003cpassword\u003e`.\n\n### AWS CloudFormation\n\n\n\n```\nUsage: dpl cloudformation [options]\n\nSummary:\n\n  AWS CloudFormation deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --access_key_id ID           AWS Access Key ID (type: string, required)\n  --secret_access_key KEY      AWS Secret Key (type: string, required)\n  --region REGION              AWS Region to deploy to (type: string, default: us-east-1)\n  --template STR               CloudFormation template file (type: string, required, note: can be either a\n                               local path or an S3 URL)\n  --stack_name NAME            CloudFormation Stack Name. (type: string, required)\n  --stack_name_prefix STR      CloudFormation Stack Name Prefix. (type: string)\n  --[no-]promote               Deploy changes (default: true, note: otherwise a change set is created)\n  --role_arn ARN               AWS Role ARN (type: string)\n  --sts_assume_role ARN        AWS Role ARN for cross account deployments (assumed by travis using given AWS\n                               credentials). (type: string)\n  --capabilities STR           CloudFormation allowed capabilities (type: array (string, can be given multiple\n                               times), known values: CAPABILITY_IAM, CAPABILITY_NAMED_IAM,\n                               CAPABILITY_AUTO_EXPAND, see:\n                               https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html)\n  --[no-]wait                  Wait for CloutFormation to finish the stack creation and update (default: true)\n  --wait_timeout SEC           How many seconds to wait for stack creation and update. (type: integer, default:\n                               3600)\n  --create_timeout SEC         How many seconds to wait before the stack status becomes CREATE_FAILED (type:\n                               integer, default: 3600, note: valid only when creating a stack)\n  --parameters STR             key=value pairs or ENV var names (type: array (string, can be given multiple\n                               times))\n  --output_file PATH           Path to output file to store CloudFormation outputs to (type: string)\n\nCommon Options:\n\n  --cleanup                    Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                    Commands to execute after the deployment finished successfully (type: array\n                               (string, can be given multiple times))\n  --help                       Get help on this command\n\nExamples:\n\n  dpl cloudformation --access_key_id id --secret_access_key key --template str --stack_name name\n  dpl cloudformation --access_key_id id --secret_access_key key --template str --stack_name name --region region\n```\n\nOptions can be given via env vars if prefixed with `[AWS_|CLOUDFORMATION_]`. E.g. the option\n`--access_key_id` can be given as `AWS_ACCESS_KEY_ID=\u003caccess_key_id\u003e` or\n`CLOUDFORMATION_ACCESS_KEY_ID=\u003caccess_key_id\u003e`.\n\n### AWS Code Deploy\n\n\n\n```\nUsage: dpl codedeploy [options]\n\nSummary:\n\n  AWS Code Deploy deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --access_key_id ID              AWS access key (type: string, required)\n  --secret_access_key KEY         AWS secret access key (type: string, required)\n  --application NAME              CodeDeploy application name (type: string, required)\n  --deployment_group GROUP        CodeDeploy deployment group name (type: string)\n  --revision_type TYPE            CodeDeploy revision type (type: string, known values: s3, github, downcases)\n  --commit_id SHA                 Commit ID in case of GitHub (type: string)\n  --repository NAME               Repository name in case of GitHub (type: string)\n  --bucket NAME                   S3 bucket in case of S3 (type: string)\n  --region REGION                 AWS availability zone (type: string, default: us-east-1)\n  --file_exists_behavior STR      How to handle files that already exist in a deployment target location (type:\n                                  string, default: disallow, known values: disallow, overwrite, retain)\n  --[no-]wait_until_deployed      Wait until the deployment has finished\n  --bundle_type TYPE              Bundle type of the revision (type: string)\n  --key KEY                       S3 bucket key of the revision (type: string)\n  --description DESCR             Description of the revision (type: string)\n  --endpoint ENDPOINT             S3 endpoint url (type: string)\n\nCommon Options:\n\n  --cleanup                       Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                       Commands to execute after the deployment finished successfully (type: array\n                                  (string, can be given multiple times))\n  --help                          Get help on this command\n\nExamples:\n\n  dpl codedeploy --access_key_id id --secret_access_key key --application name\n  dpl codedeploy --access_key_id id --secret_access_key key --application name --deployment_group group --revision_type s3\n```\n\nOptions can be given via env vars if prefixed with `[AWS_|CODEDEPLOY_]`. E.g. the option\n`--access_key_id` can be given as `AWS_ACCESS_KEY_ID=\u003caccess_key_id\u003e` or\n`CODEDEPLOY_ACCESS_KEY_ID=\u003caccess_key_id\u003e`.\n\nThe following variable are availabe for interpolation on `description`:\n\n  `application`, `bucket`, `bundle_type`, `commit_id`, `deployment_group`, `endpoint`, `file_exists_behavior`, `git_author_email`, `git_author_name`, `git_branch`, `git_commit_author`, `git_commit_msg`, `git_sha`, `git_tag`, `key`, `region`, `repository`, `revision_type`, `build_number`\n\n\n### AWS ECR\n\nSupport for deployments to AWS ECR is in **alpha**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl ecr [options]\n\nSummary:\n\n  AWS ECR deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --access_key_id ID           AWS access key (type: string, required)\n  --secret_access_key KEY      AWS secret access key (type: string, required)\n  --account_id ID              AWS Account ID (type: string, note: Required if the repository is owned by a\n                               different account than the IAM user)\n  --source SOURCE              Image to push (type: string, required, note: can be the id or the name and\n                               optional tag (e.g. mysql:5.6))\n  --target TARGET              Comma separated list of partial repository names to push to (type: string,\n                               required)\n  --region REGION              Comma separated list of regions to push to (type: string, default: us-east-1)\n\nCommon Options:\n\n  --cleanup                    Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                    Commands to execute after the deployment finished successfully (type: array\n                               (string, can be given multiple times))\n  --help                       Get help on this command\n\nExamples:\n\n  dpl ecr --access_key_id id --secret_access_key key --source source --target target\n  dpl ecr --access_key_id id --secret_access_key key --source source --target target --account_id id\n```\n\nOptions can be given via env vars if prefixed with `AWS_`. E.g. the option `--access_key_id` can be\ngiven as `AWS_ACCESS_KEY_ID=\u003caccess_key_id\u003e`.\n\n### AWS Elastic Beanstalk\n\n\n\n```\nUsage: dpl elasticbeanstalk [options]\n\nSummary:\n\n  AWS Elastic Beanstalk deployment provider\n\nDescription:\n\n  Deploy to AWS Elastic Beanstalk: https://aws.amazon.com/elasticbeanstalk/\n\n  This provider:\n\n  * Creates a zip file (or uses one you provide)\n  * Uploads it to your EB application\n  * Optionally deploys to a specific EB environment\n  * Optionally waits until the deployment finishes\n\nOptions:\n\n  --access_key_id ID                     AWS Access Key ID (type: string, required)\n  --secret_access_key KEY                AWS Secret Key (type: string, required)\n  --region REGION                        AWS Region the Elastic Beanstalk app is running in (type: string, default:\n                                         us-east-1)\n  --app NAME                             Elastic Beanstalk application name (type: string, default: repo name)\n  --env NAME                             Elastic Beanstalk environment name to be updated. (type: string)\n  --bucket NAME                          Bucket name to upload app to (type: string, required, alias: bucket_name)\n  --bucket_path PATH                     Location within Bucket to upload app to (type: string)\n  --description DESC                     Description for the application version (type: string)\n  --label LABEL                          Label for the application version (type: string)\n  --zip_file PATH                        The zip file that you want to deploy. If not given, a zipfile will be created\n                                         from the current directory, honoring .ebignore and .gitignore. (type: string)\n  --[no-]wait_until_deployed             Wait until the deployment has finished (requires: env)\n  --wait_until_deployed_timeout SEC      How many seconds to wait for Elastic Beanstalk deployment update. (type:\n                                         integer, default: 600)\n\nCommon Options:\n\n  --cleanup                              Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                              Commands to execute after the deployment finished successfully (type: array\n                                         (string, can be given multiple times))\n  --help                                 Get help on this command\n\nExamples:\n\n  dpl elasticbeanstalk --access_key_id id --secret_access_key key --bucket name\n  dpl elasticbeanstalk --access_key_id id --secret_access_key key --bucket name --region region --app name\n```\n\nOptions can be given via env vars if prefixed with `[AWS_|ELASTIC_BEANSTALK_]`. E.g. the option\n`--access_key_id` can be given as `AWS_ACCESS_KEY_ID=\u003caccess_key_id\u003e` or\n`ELASTIC_BEANSTALK_ACCESS_KEY_ID=\u003caccess_key_id\u003e`.\n\n### AWS Lambda\n\n\n\n```\nUsage: dpl lambda [options]\n\nSummary:\n\n  AWS Lambda deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --access_key_id ID            AWS access key id (type: string, required)\n  --secret_access_key KEY       AWS secret key (type: string, required)\n  --region REGION               AWS region the Lambda function is running in (type: string, default: us-east-1)\n  --function_name FUNC          Name of the Lambda being created or updated (type: string, required)\n  --role ROLE                   ARN of the IAM role to assign to the Lambda function (type: string, note:\n                                required when creating a new function)\n  --handler_name NAME           Function the Lambda calls to begin execution. (type: string, note: required when\n                                creating a new function)\n  --module_name NAME            Name of the module that exports the handler (type: string, requires:\n                                handler_name, default: index)\n  --description DESCR           Description of the Lambda being created or updated (type: string)\n  --timeout SECS                Function execution time (in seconds) at which Lambda should terminate the\n                                function (type: string, default: 3)\n  --memory_size MB              Amount of memory in MB to allocate to this Lambda (type: string, default: 128)\n  --subnet_ids IDS              List of subnet IDs to be added to the function (type: array (string, can be\n                                given multiple times), note: Needs the ec2:DescribeSubnets and ec2:DescribeVpcs\n                                permission for the user of the access/secret key to work)\n  --security_group_ids IDS      List of security group IDs to be added to the function (type: array (string, can\n                                be given multiple times), note: Needs the ec2:DescribeSecurityGroups and\n                                ec2:DescribeVpcs permission for the user of the access/secret key to work)\n  --environment VARS            List of Environment Variables to add to the function (type: array (string, can\n                                be given multiple times), alias: environment_variables, format: /[\\w\\-]+=.+/,\n                                note: Can be encrypted for added security)\n  --runtime NAME                Lambda runtime to use (type: string, default: nodejs10.x, known values:\n                                nodejs12.x, nodejs10.x, python3.8, python3.7, python3.6, python2.7, ruby2.7,\n                                ruby2.5, java11, java8, go1.x, dotnetcore2.1, note: required when creating a new\n                                function)\n  --dead_letter_arn ARN         ARN to an SNS or SQS resource used for the dead letter queue. (type: string)\n  --kms_key_arn ARN             KMS key ARN to use to encrypt environment_variables. (type: string)\n  --tracing_mode MODE           Tracing mode (type: string, default: PassThrough, known values: Active,\n                                PassThrough, note: Needs xray:PutTraceSegments xray:PutTelemetryRecords on the\n                                role)\n  --layers LAYERS               Function layer arns (type: array (string, can be given multiple times))\n  --function_tags TAGS          List of tags to add to the function (type: array (string, can be given multiple\n                                times), format: /[\\w\\-]+=.+/, note: Can be encrypted for added security)\n  --[no-]publish                Create a new version of the code instead of replacing the existing one.\n  --zip PATH                    Path to a packaged Lambda, a directory to package, or a single file to package\n                                (type: string, default: .)\n  --[no-]dot_match              Include hidden .* files to the zipped archive\n\nCommon Options:\n\n  --cleanup                     Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                     Commands to execute after the deployment finished successfully (type: array\n                                (string, can be given multiple times))\n  --help                        Get help on this command\n\nExamples:\n\n  dpl lambda --access_key_id id --secret_access_key key --function_name func\n  dpl lambda --access_key_id id --secret_access_key key --function_name func --region region --role role\n```\n\nOptions can be given via env vars if prefixed with `[AWS_|LAMBDA_]`. E.g. the option\n`--access_key_id` can be given as `AWS_ACCESS_KEY_ID=\u003caccess_key_id\u003e` or\n`LAMBDA_ACCESS_KEY_ID=\u003caccess_key_id\u003e`.\n\nThe following variable are availabe for interpolation on `description`:\n\n  `dead_letter_arn`, `function_name`, `git_author_email`, `git_author_name`, `git_branch`, `git_commit_author`, `git_commit_msg`, `git_sha`, `git_tag`, `handler_name`, `kms_key_arn`, `memory_size`, `module_name`, `region`, `role`, `runtime`, `timeout`, `tracing_mode`, `zip`\n\n\n### AWS OpsWorks\n\n\n\n```\nUsage: dpl opsworks [options]\n\nSummary:\n\n  AWS OpsWorks deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --access_key_id ID              AWS access key id (type: string, required)\n  --secret_access_key KEY         AWS secret key (type: string, required)\n  --app_id APP                    The app id (type: string, required)\n  --region REGION                 AWS region (type: string, default: us-east-1)\n  --instance_ids ID               An instance id (type: array (string, can be given multiple times))\n  --layer_ids ID                  A layer id (type: array (string, can be given multiple times))\n  --[no-]migrate                  Migrate the database.\n  --[no-]wait_until_deployed      Wait until the app is deployed and return the deployment status.\n  --[no-]update_on_success        When wait-until-deployed and updated-on-success are both not given, application\n                                  source is updated to the current SHA. Ignored when wait-until-deployed is not\n                                  given. (alias: update_app_on_success)\n  --custom_json JSON              Custom json options override (overwrites default configuration) (type: string)\n\nCommon Options:\n\n  --cleanup                       Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                       Commands to execute after the deployment finished successfully (type: array\n                                  (string, can be given multiple times))\n  --help                          Get help on this command\n\nExamples:\n\n  dpl opsworks --access_key_id id --secret_access_key key --app_id app\n  dpl opsworks --access_key_id id --secret_access_key key --app_id app --region region --instance_ids id\n```\n\nOptions can be given via env vars if prefixed with `[AWS_|OPSWORKS_]`. E.g. the option\n`--access_key_id` can be given as `AWS_ACCESS_KEY_ID=\u003caccess_key_id\u003e` or\n`OPSWORKS_ACCESS_KEY_ID=\u003caccess_key_id\u003e`.\n\n### AWS S3\n\n\n\n```\nUsage: dpl s3 [options]\n\nSummary:\n\n  AWS S3 deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --access_key_id ID                  AWS access key id (type: string, required)\n  --secret_access_key KEY             AWS secret key (type: string, required)\n  --bucket BUCKET                     S3 bucket (type: string, required)\n  --region REGION                     S3 region (type: string, default: us-east-1)\n  --endpoint URL                      S3 endpoint (type: string)\n  --upload_dir DIR                    S3 directory to upload to (type: string)\n  --local_dir DIR                     Local directory to upload from (type: string, default: ., e.g.: ~/travis/build\n                                      (absolute path) or ./build (relative path))\n  --glob GLOB                         Files to upload (type: string, default: **/*)\n  --[no-]dot_match                    Upload hidden files starting with a dot\n  --acl ACL                           Access control for the uploaded objects (type: string, default: private, known\n                                      values: private, public_read, public_read_write, authenticated_read,\n                                      bucket_owner_read, bucket_owner_full_control)\n  --[no-]detect_encoding              HTTP header Content-Encoding for files compressed with gzip and compress\n                                      utilities\n  --cache_control STR                 HTTP header Cache-Control to suggest that the browser cache the file (type:\n                                      array (string, can be given multiple times), default: no-cache, known values:\n                                      /^no-cache.*/, /^no-store.*/, /^max-age=\\d+.*/, /^s-maxage=\\d+.*/,\n                                      /^no-transform/, /^public/, /^private/, note: accepts mapping values to globs)\n  --expires DATE                      Date and time that the cached object expires (type: array (string, can be given\n                                      multiple times), format: /^\"?\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2} .+\"?.*$/, note:\n                                      accepts mapping values to globs)\n  --default_text_charset CHARSET      Default character set to append to the content-type of text files (type: string)\n  --storage_class CLASS               S3 storage class to upload as (type: string, default: STANDARD, known values:\n                                      STANDARD, STANDARD_IA, REDUCED_REDUNDANCY)\n  --[no-]server_side_encryption       Use S3 Server Side Encryption (SSE-AES256)\n  --index_document_suffix SUFFIX      Index document suffix of a S3 website (type: string)\n  --[no-]overwrite                    Whether or not to overwrite existing files (default: true)\n  --[no-]force_path_style             Whether to force keeping the bucket name on the path\n  --max_threads NUM                   The number of threads to use for S3 file uploads (type: integer, default: 5,\n                                      max: 15)\n  --[no-]verbose                      Be verbose about uploading files\n\nCommon Options:\n\n  --cleanup                           Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                           Commands to execute after the deployment finished successfully (type: array\n                                      (string, can be given multiple times))\n  --help                              Get help on this command\n\nExamples:\n\n  dpl s3 --access_key_id id --secret_access_key key --bucket bucket\n  dpl s3 --access_key_id id --secret_access_key key --bucket bucket --region region --endpoint url\n```\n\nOptions can be given via env vars if prefixed with `[AWS_|S3_]`. E.g. the option `--access_key_id`\ncan be given as `AWS_ACCESS_KEY_ID=\u003caccess_key_id\u003e` or `S3_ACCESS_KEY_ID=\u003caccess_key_id\u003e`.\n\n### Azure Web Apps\n\nSupport for deployments to Azure Web Apps is in **alpha**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl azure_web_apps [options]\n\nSummary:\n\n  Azure Web Apps deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --username NAME      Web App Deployment Username (type: string, required)\n  --password PASS      Web App Deployment Password (type: string, required)\n  --site SITE          Web App name (e.g. myapp in myapp.azurewebsites.net) (type: string, required)\n  --slot SLOT          Slot name (if your app uses staging deployment) (type: string)\n  --[no-]verbose       Print deployment output from Azure. Warning: If authentication fails, Git prints\n                       credentials in clear text. Correct credentials remain hidden.\n\nCommon Options:\n\n  --cleanup            Clean up build artifacts from the Git working directory before the deployment\n  --run CMD            Commands to execute after the deployment finished successfully (type: array\n                       (string, can be given multiple times))\n  --help               Get help on this command\n\nExamples:\n\n  dpl azure_web_apps --username name --password pass --site site\n  dpl azure_web_apps --username name --password pass --site site --slot slot --verbose\n```\n\nOptions can be given via env vars if prefixed with `AZURE_WA_`. E.g. the option `--password` can be\ngiven as `AZURE_WA_PASSWORD=\u003cpassword\u003e`.\n\n### Bintray\n\n\n\n```\nUsage: dpl bintray [options]\n\nSummary:\n\n  Bintray deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --user USER              Bintray user (type: string, required)\n  --key KEY                Bintray API key (type: string, required)\n  --file FILE              Path to a descriptor file for the Bintray upload (type: string, required)\n  --passphrase PHRASE      Passphrase as configured on Bintray (if GPG signing is used) (type: string)\n\nCommon Options:\n\n  --cleanup                Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                Commands to execute after the deployment finished successfully (type: array\n                           (string, can be given multiple times))\n  --help                   Get help on this command\n\nExamples:\n\n  dpl bintray --user user --key key --file file\n  dpl bintray --user user --key key --file file --passphrase phrase --cleanup\n```\n\nOptions can be given via env vars if prefixed with `BINTRAY_`. E.g. the option `--key` can be given\nas `BINTRAY_KEY=\u003ckey\u003e`.\n\n### Bluemix Cloud Foundry\n\n\n\n```\nUsage: dpl bluemixcloudfoundry [options]\n\nSummary:\n\n  Bluemix Cloud Foundry deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --username USER                 Bluemix username (type: string, required)\n  --password PASS                 Bluemix password (type: string, required)\n  --organization ORG              Bluemix organization (type: string, required)\n  --space SPACE                   Bluemix space (type: string, required)\n  --region REGION                 Bluemix region (type: string, default: ng, known values: ng, eu-gb, eu-de,\n                                  au-syd)\n  --api URL                       Bluemix api URL (type: string)\n  --app_name APP                  Application name (type: string)\n  --buildpack PACK                Buildpack name or Git URL (type: string)\n  --manifest FILE                 Path to the manifest (type: string)\n  --[no-]skip_ssl_validation      Skip SSL validation\n\nCommon Options:\n\n  --cleanup                       Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                       Commands to execute after the deployment finished successfully (type: array\n                                  (string, can be given multiple times))\n  --help                          Get help on this command\n\nExamples:\n\n  dpl bluemixcloudfoundry --username user --password pass --organization org --space space\n  dpl bluemixcloudfoundry --username user --password pass --organization org --space space --region ng\n```\n\nOptions can be given via env vars if prefixed with `CLOUDFOUNDRY_`. E.g. the option `--password` can\nbe given as `CLOUDFOUNDRY_PASSWORD=\u003cpassword\u003e`.\n\n### Boxfuse\n\nSupport for deployments to Boxfuse is in **alpha**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl boxfuse [options]\n\nSummary:\n\n  Boxfuse deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --user USER             type: string, required\n  --secret SECRET         type: string, required\n  --payload PAYLOAD       type: string\n  --app APP               type: string\n  --version VERSION       type: string\n  --env ENV               type: string\n  --config_file FILE      type: string, alias: configfile (deprecated, please use config_file)\n  --extra_args ARGS       type: string\n\nCommon Options:\n\n  --cleanup               Clean up build artifacts from the Git working directory before the deployment\n  --run CMD               Commands to execute after the deployment finished successfully (type: array\n                          (string, can be given multiple times))\n  --help                  Get help on this command\n\nExamples:\n\n  dpl boxfuse --user user --secret secret\n  dpl boxfuse --user user --secret secret --payload payload --app app --version version\n```\n\nOptions can be given via env vars if prefixed with `BOXFUSE_`. E.g. the option `--secret` can be\ngiven as `BOXFUSE_SECRET=\u003csecret\u003e`.\n\n### Cargo\n\n\n\n```\nUsage: dpl cargo [options]\n\nSummary:\n\n  Cargo deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --token TOKEN           Cargo registry API token (type: string, required)\n  --[no-]allow_dirty      Allow publishing from a dirty git working directory\n\nCommon Options:\n\n  --cleanup               Clean up build artifacts from the Git working directory before the deployment\n  --run CMD               Commands to execute after the deployment finished successfully (type: array\n                          (string, can be given multiple times))\n  --help                  Get help on this command\n\nExamples:\n\n  dpl cargo --token token\n  dpl cargo --token token --allow_dirty --cleanup --run cmd\n```\n\nOptions can be given via env vars if prefixed with `CARGO_`. E.g. the option `--token` can be given\nas `CARGO_TOKEN=\u003ctoken\u003e`.\n\n### Chef Supermarket\n\nSupport for deployments to Chef Supermarket is in **alpha**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl chef_supermarket [options]\n\nSummary:\n\n  Chef Supermarket deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --user_id ID          Chef Supermarket user name (type: string, required)\n  --name NAME           Cookbook name (type: string, alias: cookbook_name (deprecated, please use name),\n                        note: defaults to the name given in metadata.json or metadata.rb)\n  --category CAT        Cookbook category in Supermarket (type: string, required, alias:\n                        cookbook_category (deprecated, please use category), see:\n                        https://docs.getchef.com/knife_cookbook_site.html#id12)\n  --client_key KEY      Client API key file name (type: string, default: client.pem)\n  --dir DIR             Directory containing the cookbook (type: string, default: .)\n\nCommon Options:\n\n  --cleanup             Clean up build artifacts from the Git working directory before the deployment\n  --run CMD             Commands to execute after the deployment finished successfully (type: array\n                        (string, can be given multiple times))\n  --help                Get help on this command\n\nExamples:\n\n  dpl chef_supermarket --user_id id --category cat\n  dpl chef_supermarket --user_id id --category cat --name name --client_key key --dir dir\n```\n\nOptions can be given via env vars if prefixed with `CHEF_`.\n\n### Cloud Files\n\nSupport for deployments to Cloud Files is in **alpha**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl cloudfiles [options]\n\nSummary:\n\n  Cloud Files deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --username USER       Rackspace username (type: string, required)\n  --api_key KEY         Rackspace API key (type: string, required)\n  --region REGION       Cloudfiles region (type: string, required, known values: ord, dfw, syd, iad,\n                        hkg)\n  --container NAME      Name of the container that files will be uploaded to (type: string, required)\n  --glob GLOB           Paths to upload (type: string, default: **/*)\n  --[no-]dot_match      Upload hidden files starting a dot\n\nCommon Options:\n\n  --cleanup             Clean up build artifacts from the Git working directory before the deployment\n  --run CMD             Commands to execute after the deployment finished successfully (type: array\n                        (string, can be given multiple times))\n  --help                Get help on this command\n\nExamples:\n\n  dpl cloudfiles --username user --api_key key --region ord --container name\n  dpl cloudfiles --username user --api_key key --region ord --container name --glob glob\n```\n\nOptions can be given via env vars if prefixed with `CLOUDFILES_`. E.g. the option `--api_key` can be\ngiven as `CLOUDFILES_API_KEY=\u003capi_key\u003e`.\n\n### Cloud Foundry\n\n\n\n```\nUsage: dpl cloudfoundry [options]\n\nSummary:\n\n  Cloud Foundry deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --username USER                     Cloud Foundry username (type: string, required)\n  --password PASS                     Cloud Foundry password (type: string, required)\n  --organization ORG                  Cloud Foundry organization (type: string, required)\n  --space SPACE                       Cloud Foundry space (type: string, required)\n  --api URL                           Cloud Foundry api URL (type: string, default: https://api.run.pivotal.io)\n  --app_name APP                      Application name (type: string)\n  --buildpack PACK                    Buildpack name or Git URL (type: string)\n  --manifest FILE                     Path to the manifest (type: string)\n  --[no-]skip_ssl_validation          Skip SSL validation\n  --deployment_strategy STRATEGY      Deployment strategy, either rolling or null (type: string)\n  --[no-]v3                           Use the v3 API version to push the application\n\nCommon Options:\n\n  --cleanup                           Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                           Commands to execute after the deployment finished successfully (type: array\n                                      (string, can be given multiple times))\n  --help                              Get help on this command\n\nExamples:\n\n  dpl cloudfoundry --username user --password pass --organization org --space space\n  dpl cloudfoundry --username user --password pass --organization org --space space --api url\n```\n\nOptions can be given via env vars if prefixed with `CLOUDFOUNDRY_`. E.g. the option `--password` can\nbe given as `CLOUDFOUNDRY_PASSWORD=\u003cpassword\u003e`.\n\n### Cloud66\n\nSupport for deployments to Cloud66 is in **alpha**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl cloud66 [options]\n\nSummary:\n\n  Cloud66 deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --redeployment_hook URL      The redeployment hook URL (type: string, required)\n\nCommon Options:\n\n  --cleanup                    Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                    Commands to execute after the deployment finished successfully (type: array\n                               (string, can be given multiple times))\n  --help                       Get help on this command\n\nExamples:\n\n  dpl cloud66 --redeployment_hook url\n  dpl cloud66 --redeployment_hook url --cleanup --run cmd\n```\n\nOptions can be given via env vars if prefixed with `CLOUD66_`. E.g. the option `--redeployment_hook`\ncan be given as `CLOUD66_REDEPLOYMENT_HOOK=\u003credeployment_hook\u003e`.\n\n### Convox\n\nSupport for deployments to Convox is in **development**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl convox [options]\n\nSummary:\n\n  Convox deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --host HOST            type: string, default: console.convox.com\n  --app APP              type: string, required\n  --rack RACK            type: string, required\n  --password PASS        type: string, required\n  --install_url URL      type: string, default: https://convox.com/cli/linux/convox\n  --[no-]update_cli\n  --[no-]create\n  --[no-]promote         default: true\n  --env_names VARS       type: array (string, can be given multiple times)\n  --env VARS             type: array (string, can be given multiple times)\n  --env_file FILE        type: string\n  --description STR      type: string\n  --generation NUM       type: integer, default: 2\n  --prepare CMDS         Run commands with convox cli available just before deployment (type: array\n                         (string, can be given multiple times))\n\nCommon Options:\n\n  --cleanup              Clean up build artifacts from the Git working directory before the deployment\n  --run CMD              Commands to execute after the deployment finished successfully (type: array\n                         (string, can be given multiple times))\n  --help                 Get help on this command\n\nExamples:\n\n  dpl convox --app app --rack rack --password pass\n  dpl convox --app app --rack rack --password pass --host host --install_url url\n```\n\nOptions can be given via env vars if prefixed with `CONVOX_`.\n\n### Datica\n\nSupport for deployments to Datica is in **development**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl datica [options]\n   or: dpl catalyze [options]\n\nSummary:\n\n  Datica deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --target TARGET      The git remote repository to deploy to (type: string, required)\n  --path PATH          Path to files to deploy (type: string, default: .)\n\nCommon Options:\n\n  --cleanup            Clean up build artifacts from the Git working directory before the deployment\n  --run CMD            Commands to execute after the deployment finished successfully (type: array\n                       (string, can be given multiple times))\n  --help               Get help on this command\n\nExamples:\n\n  dpl datica --target target\n  dpl datica --target target --path path --cleanup --run cmd\n```\n\nOptions can be given via env vars if prefixed with `[CATALYZE_|DATICA_]`.\n\n### Engineyard\n\nSupport for deployments to Engineyard is in **alpha**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl engineyard [options]\n\nSummary:\n\n  Engineyard deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  Either api_key, or email and password are required.\n\n  --api_key KEY        Engine Yard API key (type: string, note: can be obtained at\n                       https://cloud.engineyard.com/cli)\n  --email EMAIL        Engine Yard account email (type: string)\n  --password PASS      Engine Yard password (type: string)\n  --app APP            Engine Yard application name (type: string, default: repo name)\n  --env ENV            Engine Yard application environment (type: string, alias: environment)\n  --migrate CMD        Engine Yard migration commands (type: string)\n  --account NAME       Engine Yard account name (type: string)\n\nCommon Options:\n\n  --cleanup            Clean up build artifacts from the Git working directory before the deployment\n  --run CMD            Commands to execute after the deployment finished successfully (type: array\n                       (string, can be given multiple times))\n  --help               Get help on this command\n\nExamples:\n\n  dpl engineyard --api_key key\n  dpl engineyard --email email --password pass\n  dpl engineyard --api_key key --app app --env env --migrate cmd --account name\n```\n\nOptions can be given via env vars if prefixed with `[ENGINEYARD_|EY_]`. E.g. the option `--api_key`\ncan be given as `ENGINEYARD_API_KEY=\u003capi_key\u003e` or `EY_API_KEY=\u003capi_key\u003e`.\n\n### Firebase\n\n\n\n```\nUsage: dpl firebase [options]\n\nSummary:\n\n  Firebase deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --token TOKEN        Firebase CI access token (generate with firebase login:ci) (type: string,\n                       required)\n  --project NAME       Firebase project to deploy to (defaults to the one specified in your\n                       firebase.json) (type: string)\n  --message MSG        Message describing this deployment. (type: string)\n  --only SERVICES      Firebase services to deploy (type: string, note: can be a comma-separated list)\n  --[no-]force         Whether or not to delete Cloud Functions missing from the current working\n                       directory\n\nCommon Options:\n\n  --cleanup            Clean up build artifacts from the Git working directory before the deployment\n  --run CMD            Commands to execute after the deployment finished successfully (type: array\n                       (string, can be given multiple times))\n  --help               Get help on this command\n\nExamples:\n\n  dpl firebase --token token\n  dpl firebase --token token --project name --message msg --only services --force\n```\n\nOptions can be given via env vars if prefixed with `FIREBASE_`. E.g. the option `--token` can be\ngiven as `FIREBASE_TOKEN=\u003ctoken\u003e`.\n\n### Flynn\n\nSupport for deployments to Flynn is in **development**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl flynn [options]\n\nSummary:\n\n  Flynn deployment provider\n\nDescription:\n\n  Flynn provider for Dpl\n\nOptions:\n\n  --git URL      Flynn Git remote URL (type: string, required)\n\nCommon Options:\n\n  --cleanup      Clean up build artifacts from the Git working directory before the deployment\n  --run CMD      Commands to execute after the deployment finished successfully (type: array\n                 (string, can be given multiple times))\n  --help         Get help on this command\n\nExamples:\n\n  dpl flynn --git url\n  dpl flynn --git url --cleanup --run cmd\n```\n\n\n\n### Git (push)\n\nSupport for deployments to Git (push) is in **development**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl git_push [options]\n\nSummary:\n\n  Git (push) deployment provider\n\nDescription:\n\n  Experimental, generic provider for updating a Git remote branch with\n  changes produced by the build, and optionally opening a pull request.\n\nOptions:\n\n  Either token, or deploy_key and name and email are required.\n\n  --repo SLUG                    Repo slug (type: string, default: repo slug)\n  --token TOKEN                  GitHub token with repo permission (type: string, alias: github_token)\n  --deploy_key PATH              Path to a file containing a private deploy key with write access to the\n                                 repository (type: string, see:\n                                 https://developer.github.com/v3/guides/managing-deploy-keys/#deploy-keys)\n  --branch BRANCH                Target branch to push to (type: string, required)\n  --base_branch BRANCH           Base branch to branch off initially, and (optionally) create a pull request for\n                                 (type: string, default: master)\n  --name NAME                    Committer name (type: string, note: defaults to the GitHub name or login\n                                 associated with the GitHub token)\n  --email EMAIL                  Committer email (type: string, note: defaults to the GitHub email associated\n                                 with the GitHub token)\n  --commit_message MSG           type: string, default: Update %{base_branch}\n  --[no-]allow_empty_commit      Allow an empty commit to be created\n  --[no-]force                   Whether to push --force (default: false)\n  --local_dir DIR                Local directory to push (type: string, default: .)\n  --[no-]pull_request            Whether to create a pull request for the given branch\n  --[no-]allow_same_branch       Whether to allow pushing to the same branch as the current branch (default:\n                                 false, note: setting this to true risks creating infinite build loops, use\n                                 conditional builds or other mechanisms to prevent build from infinitely\n                                 triggering more builds)\n  --host HOST                    type: string, default: github.com\n  --[no-]enterprise              Whether to use a GitHub Enterprise API style URL\n\nCommon Options:\n\n  --cleanup                      Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                      Commands to execute after the deployment finished successfully (type: array\n                                 (string, can be given multiple times))\n  --help                         Get help on this command\n\nExamples:\n\n  dpl git_push --branch branch --token token\n  dpl git_push --branch branch --deploy_key path --name name --email email\n  dpl git_push --branch branch\n  dpl git_push --branch branch --token token --repo slug --base_branch branch --commit_message msg\n```\n\nOptions can be given via env vars if prefixed with `[GITHUB_|GIT_]`. E.g. the option `--token` can\nbe given as `GITHUB_TOKEN=\u003ctoken\u003e` or `GIT_TOKEN=\u003ctoken\u003e`.\n\nThe following variable are availabe for interpolation on `commit_message`:\n\n  `base_branch`, `branch`, `deploy_key`, `email`, `git_author_email`, `git_author_name`, `git_branch`, `git_commit_author`, `git_commit_msg`, `git_sha`, `git_tag`, `host`, `local_dir`, `name`, `repo`\n\n\n### GitHub Pages\n\n\n\n```\nUsage: dpl pages git [options]\n\nSummary:\n\n  GitHub Pages deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  Either token, or deploy_key are required.\n\n  --repo SLUG                    Repo slug (type: string, default: repo slug)\n  --token TOKEN                  GitHub token with repo permission (type: string, alias: github_token)\n  --deploy_key PATH              Path to a file containing a private deploy key with write access to the\n                                 repository (type: string, see:\n                                 https://developer.github.com/v3/guides/managing-deploy-keys/#deploy-keys)\n  --target_branch BRANCH         Branch to push force to (type: string, default: gh-pages)\n  --[no-]keep_history            Create incremental commit instead of doing push force (default: true)\n  --commit_message MSG           type: string, default: Deploy %{project_name} to %{url}:%{target_branch}\n  --[no-]allow_empty_commit      Allow an empty commit to be created (requires: keep_history)\n  --[no-]verbose                 Be verbose about the deploy process\n  --local_dir DIR                Directory to push to GitHub Pages (type: string, default: .)\n  --fqdn FQDN                    Write the given domain name to the CNAME file (type: string)\n  --project_name NAME            Used in the commit message only (defaults to fqdn or the current repo slug)\n                                 (type: string)\n  --name NAME                    Committer name (type: string, note: defaults to the current git commit author\n                                 name)\n  --email EMAIL                  Committer email (type: string, note: defaults to the current git commit author\n                                 email)\n  --[no-]committer_from_gh       Use the token's owner name and email for the commit (requires: token)\n  --[no-]deployment_file         Enable creation of a deployment-info file\n  --url URL                      type: string, alias: github_url, default: github.com\n\nCommon Options:\n\n  --strategy NAME                GitHub Pages deployment strategy (type: string, default: git, known values: api,\n                                 git)\n  --cleanup                      Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                      Commands to execute after the deployment finished successfully (type: array\n                                 (string, can be given multiple times))\n  --help                         Get help on this command\n\nExamples:\n\n  dpl pages git --token token\n  dpl pages git --deploy_key path\n  dpl pages git --token token --repo slug --target_branch branch --keep_history --commit_message msg\n```\n\nOptions can be given via env vars if prefixed with `[GITHUB_|PAGES_]`. E.g. the option `--token` can\nbe given as `GITHUB_TOKEN=\u003ctoken\u003e` or `PAGES_TOKEN=\u003ctoken\u003e`.\n\nThe following variable are availabe for interpolation on `commit_message`:\n\n  `deploy_key`, `email`, `fqdn`, `git_author_email`, `git_author_name`, `git_branch`, `git_commit_author`, `git_commit_msg`, `git_sha`, `git_tag`, `local_dir`, `name`, `project_name`, `repo`, `target_branch`, `url`\n\n\n### GitHub Pages (API)\n\nSupport for deployments to GitHub Pages (API) is in **development**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl pages api [options]\n\nSummary:\n\n  GitHub Pages (API) deployment provider\n\nDescription:\n\n  This provider requests GitHub Pages build for the repository given by\n  the `--repo` flag, or the current one, if the flag is not given.\n  Note that `dpl` does not perform any check about the fitness of the request;\n  it is assumed that the target repository (and the branch that GitHub Pages is\n  configured to use) is ready for building.\n  For example, if your GitHub Pages is configured to use `gh-pages` but the\n  deployment is run on the `master` branch, you would have to ensure that the\n  `gh-pages` would be updated accordingly during the build.\n\nOptions:\n\n  --repo SLUG          GitHub repo slug (type: string, default: repo slug)\n  --token TOKEN        GitHub oauth token with repo permission (type: string, required, alias:\n                       github_token)\n\nCommon Options:\n\n  --strategy NAME      GitHub Pages deployment strategy (type: string, default: git, known values: api,\n                       git)\n  --cleanup            Clean up build artifacts from the Git working directory before the deployment\n  --run CMD            Commands to execute after the deployment finished successfully (type: array\n                       (string, can be given multiple times))\n  --help               Get help on this command\n\nExamples:\n\n  dpl pages api --token token\n  dpl pages api --token token --repo slug --strategy api --cleanup --run cmd\n```\n\nOptions can be given via env vars if prefixed with `[GITHUB_|PAGES_]`. E.g. the option `--token` can\nbe given as `GITHUB_TOKEN=\u003ctoken\u003e` or `PAGES_TOKEN=\u003ctoken\u003e`.\n\n### GitHub Releases\n\n\n\n```\nUsage: dpl releases [options]\n\nSummary:\n\n  GitHub Releases deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  Either token, or username and password are required.\n\n  --token TOKEN                  GitHub oauth token (needs public_repo or repo permission) (type: string, alias:\n                                 api_key)\n  --username LOGIN               GitHub login name (type: string, alias: user)\n  --password PASS                GitHub password (type: string)\n  --repo SLUG                    GitHub repo slug (type: string, default: repo slug)\n  --file GLOB                    File or glob to release to GitHub (type: array (string, can be given multiple\n                                 times), default: *)\n  --[no-]file_glob               Interpret files as globs (default: true)\n  --[no-]overwrite               Overwrite files with the same name\n  --[no-]prerelease              Identify the release as a prerelease\n  --release_number NUM           Release number (override automatic release detection) (type: string)\n  --release_notes STR            Content for the release notes (type: string, alias: body)\n  --release_notes_file PATH      Path to a file containing the release notes (type: string, note: will be ignored\n                                 if --release_notes is given)\n  --[no-]draft                   Identify the release as a draft\n  --tag_name TAG                 Git tag from which to create the release (type: string)\n  --target_commitish STR         Commitish value that determines where the Git tag is created from (type: string)\n  --name NAME                    Name for the release (type: string)\n\nCommon Options:\n\n  --cleanup                      Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                      Commands to execute after the deployment finished successfully (type: array\n                                 (string, can be given multiple times))\n  --help                         Get help on this command\n\nExamples:\n\n  dpl releases --token token\n  dpl releases --username login --password pass\n  dpl releases --token token --repo slug --file glob --file_glob --overwrite\n```\n\nOptions can be given via env vars if prefixed with `[GITHUB_|RELEASES_]`. E.g. the option `--token`\ncan be given as `GITHUB_TOKEN=\u003ctoken\u003e` or `RELEASES_TOKEN=\u003ctoken\u003e`.\n\n### Gleis\n\nSupport for deployments to Gleis is in **alpha**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl gleis [options]\n\nSummary:\n\n  Gleis deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --app APP            Gleis application to upload to (type: string, default: repo name)\n  --username NAME      Gleis username (type: string, required)\n  --password PASS      Gleis password (type: string, required)\n  --key_name NAME      Name of the SSH deploy key pushed to Gleis (type: string, default:\n                       dpl_deploy_key)\n  --[no-]verbose\n\nCommon Options:\n\n  --cleanup            Clean up build artifacts from the Git working directory before the deployment\n  --run CMD            Commands to execute after the deployment finished successfully (type: array\n                       (string, can be given multiple times))\n  --help               Get help on this command\n\nExamples:\n\n  dpl gleis --username name --password pass\n  dpl gleis --username name --password pass --app app --key_name name --verbose\n```\n\nOptions can be given via env vars if prefixed with `GLEIS_`. E.g. the option `--password` can be\ngiven as `GLEIS_PASSWORD=\u003cpassword\u003e`.\n\n### Google App Engine\n\n\n\n```\nUsage: dpl gae [options]\n\nSummary:\n\n  Google App Engine deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --project ID                      Project ID used to identify the project on Google Cloud (type: string, required)\n  --keyfile FILE                    Path to the JSON file containing your Service Account credentials in JSON Web\n                                    Token format. To be obtained via the Google Developers Console. Should be\n                                    handled with care as it contains authorization keys. (type: string, default:\n                                    service-account.json)\n  --config FILE                     Path to your service configuration file (type: array (string, can be given\n                                    multiple times), default: app.yaml)\n  --version VER                     The version of the app that will be created or replaced by this deployment. If\n                                    you do not specify a version, one will be generated for you (type: string)\n  --verbosity LEVEL                 Adjust the log verbosity (type: string, default: warning)\n  --[no-]promote                    Whether to promote the deployed version (default: true)\n  --[no-]stop_previous_version      Prevent the deployment from stopping a previously promoted version (default:\n                                    true)\n  --[no-]install_sdk                Whether to install the Google Cloud SDK (default: true)\n\nCommon Options:\n\n  --cleanup                         Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                         Commands to execute after the deployment finished successfully (type: array\n                                    (string, can be given multiple times))\n  --help                            Get help on this command\n\nExamples:\n\n  dpl gae --project id\n  dpl gae --project id --keyfile file --config file --version ver --verbosity level\n```\n\nOptions can be given via env vars if prefixed with\n`[CLOUDSDK_CORE|CLOUDSDK_CORE_|GAE|GAE_|GOOGLECLOUD|GOOGLECLOUD_]`.\n\n### Google Cloud Store\n\n\n\n```\nUsage: dpl gcs [options]\n\nSummary:\n\n  Google Cloud Store deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  Either key_file, or access_key_id and secret_access_key are required.\n\n  --key_file FILE              Path to a GCS service account key JSON file (type: string)\n  --access_key_id ID           GCS Interoperable Access Key ID (type: string)\n  --secret_access_key KEY      GCS Interoperable Access Secret (type: string)\n  --bucket BUCKET              GCS Bucket (type: string, required)\n  --local_dir DIR              Local directory to upload from (type: string, default: .)\n  --upload_dir DIR             GCS directory to upload to (type: string)\n  --[no-]dot_match             Upload hidden files starting with a dot\n  --acl ACL                    Access control to set for uploaded objects (type: string, default: private,\n                               known values: private, public-read, public-read-write, authenticated-read,\n                               bucket-owner-read, bucket-owner-full-control, see:\n                               https://cloud.google.com/storage/docs/reference-headers#xgoogacl)\n  --[no-]detect_encoding       HTTP header Content-Encoding to set for files compressed with gzip and compress\n                               utilities.\n  --cache_control HEADER       HTTP header Cache-Control to suggest that the browser cache the file. (type:\n                               string, see:\n                               https://cloud.google.com/storage/docs/xml-api/reference-headers#cachecontrol)\n  --glob GLOB                  type: string, default: **/*\n\nCommon Options:\n\n  --cleanup                    Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                    Commands to execute after the deployment finished successfully (type: array\n                               (string, can be given multiple times))\n  --help                       Get help on this command\n\nExamples:\n\n  dpl gcs --bucket bucket --key_file file\n  dpl gcs --bucket bucket --access_key_id id --secret_access_key key\n  dpl gcs --bucket bucket\n  dpl gcs --bucket bucket --key_file file --local_dir dir --upload_dir dir --dot_match\n```\n\nOptions can be given via env vars if prefixed with `GCS_`. E.g. the option `--access_key_id` can be\ngiven as `GCS_ACCESS_KEY_ID=\u003caccess_key_id\u003e`.\n\n### Hackage\n\nSupport for deployments to Hackage is in **alpha**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl hackage [options]\n\nSummary:\n\n  Hackage deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --username USER      Hackage username (type: string, required)\n  --password USER      Hackage password (type: string, required)\n  --[no-]publish       Whether or not to publish the package\n\nCommon Options:\n\n  --cleanup            Clean up build artifacts from the Git working directory before the deployment\n  --run CMD            Commands to execute after the deployment finished successfully (type: array\n                       (string, can be given multiple times))\n  --help               Get help on this command\n\nExamples:\n\n  dpl hackage --username user --password user\n  dpl hackage --username user --password user --publish --cleanup --run cmd\n```\n\nOptions can be given via env vars if prefixed with `HACKAGE_`. E.g. the option `--password` can be\ngiven as `HACKAGE_PASSWORD=\u003cpassword\u003e`.\n\n### Hephy\n\nSupport for deployments to Hephy is in **beta**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl hephy [options]\n\nSummary:\n\n  Hephy deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --controller NAME      Hephy controller (type: string, required, e.g.: hephy.hephyapps.com)\n  --username USER        Hephy username (type: string, required)\n  --password PASS        Hephy password (type: string, required)\n  --app APP              Deis app (type: string, required)\n  --cli_version VER      Install a specific Hephy CLI version (type: string, default: stable)\n  --[no-]verbose         Verbose log output\n\nCommon Options:\n\n  --cleanup              Clean up build artifacts from the Git working directory before the deployment\n  --run CMD              Commands to execute after the deployment finished successfully (type: array\n                         (string, can be given multiple times))\n  --help                 Get help on this command\n\nExamples:\n\n  dpl hephy --controller name --username user --password pass --app app\n  dpl hephy --controller name --username user --password pass --app app --cli_version ver\n```\n\nOptions can be given via env vars if prefixed with `HEPHY_`. E.g. the option `--password` can be\ngiven as `HEPHY_PASSWORD=\u003cpassword\u003e`.\n\n### Heroku API\n\n\n\n```\nUsage: dpl heroku api [options]\n\nSummary:\n\n  Heroku API deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --api_key KEY        Heroku API key (type: string, required)\n\nCommon Options:\n\n  --strategy NAME      Heroku deployment strategy (type: string, default: api, known values: api, git)\n  --app APP            Heroku app name (type: string, default: repo name)\n  --cleanup            Clean up build artifacts from the Git working directory before the deployment\n  --run CMD            Commands to execute after the deployment finished successfully (type: array\n                       (string, can be given multiple times))\n  --help               Get help on this command\n\nExamples:\n\n  dpl heroku api --api_key key\n  dpl heroku api --api_key key --strategy api --app app --cleanup --run cmd\n```\n\nOptions can be given via env vars if prefixed with `HEROKU_`. E.g. the option `--api_key` can be\ngiven as `HEROKU_API_KEY=\u003capi_key\u003e`.\n\n### Heroku Git\n\nSupport for deployments to Heroku Git is in **alpha**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl heroku git [options]\n\nSummary:\n\n  Heroku Git deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  Either api_key, or username and password are required.\n\n  --api_key KEY        Heroku API key (type: string)\n  --username USER      Heroku username (type: string, alias: user)\n  --password PASS      Heroku password (type: string)\n  --git URL            Heroku Git remote URL (type: string)\n\nCommon Options:\n\n  --strategy NAME      Heroku deployment strategy (type: string, default: api, known values: api, git)\n  --app APP            Heroku app name (type: string, default: repo name)\n  --cleanup            Clean up build artifacts from the Git working directory before the deployment\n  --run CMD            Commands to execute after the deployment finished successfully (type: array\n                       (string, can be given multiple times))\n  --help               Get help on this command\n\nExamples:\n\n  dpl heroku git --api_key key\n  dpl heroku git --username user --password pass\n  dpl heroku git --api_key key --git url --strategy api --app app --cleanup\n```\n\nOptions can be given via env vars if prefixed with `HEROKU_`. E.g. the option `--api_key` can be\ngiven as `HEROKU_API_KEY=\u003capi_key\u003e`.\n\n### Launchpad\n\nSupport for deployments to Launchpad is in **alpha**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl launchpad [options]\n\nSummary:\n\n  Launchpad deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --oauth_token TOKEN              Launchpad OAuth token (type: string)\n  --oauth_token_secret SECRET      Launchpad OAuth token secret (type: string)\n  --slug SLUG                      Launchpad project slug (type: string, format: /^~[^\\/]+\\/[^\\/]+\\/[^\\/]+$/, e.g.:\n                                   ~user-name/project-name/branch-name)\n\nCommon Options:\n\n  --cleanup                        Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                        Commands to execute after the deployment finished successfully (type: array\n                                   (string, can be given multiple times))\n  --help                           Get help on this command\n\nExamples:\n\n  dpl launchpad --oauth_token token --oauth_token_secret secret --slug slug --cleanup --run cmd\n```\n\nOptions can be given via env vars if prefixed with `LAUNCHPAD_`. E.g. the option `--oauth_token` can\nbe given as `LAUNCHPAD_OAUTH_TOKEN=\u003coauth_token\u003e`.\n\n### Netlify\n\n\n\n```\nUsage: dpl netlify [options]\n\nSummary:\n\n  Netlify deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --site ID              A site ID to deploy to (type: string, required)\n  --auth TOKEN           An auth token to log in with (type: string, required)\n  --dir DIR              Specify a folder to deploy (type: string)\n  --functions FUNCS      Specify a functions folder to deploy (type: string)\n  --message MSG          A message to include in the deploy log (type: string)\n  --[no-]prod            Deploy to production\n\nCommon Options:\n\n  --cleanup              Clean up build artifacts from the Git working directory before the deployment\n  --run CMD              Commands to execute after the deployment finished successfully (type: array\n                         (string, can be given multiple times))\n  --help                 Get help on this command\n\nExamples:\n\n  dpl netlify --site id --auth token\n  dpl netlify --site id --auth token --dir dir --functions funcs --message msg\n```\n\nOptions can be given via env vars if prefixed with `NETLIFY_`. E.g. the option `--auth` can be given\nas `NETLIFY_AUTH=\u003cauth\u003e`.\n\n### npm\n\n\n\n```\nUsage: dpl npm [options]\n\nSummary:\n\n  npm deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --email EMAIL             npm account email (type: string)\n  --api_token TOKEN         npm api token (type: string, required, alias: api_key, note: can be retrieved\n                            from your local ~/.npmrc file, see:\n                            https://docs.npmjs.com/creating-and-viewing-authentication-tokens)\n  --access ACCESS           Access level (type: string, known values: public, private)\n  --registry URL            npm registry url (type: string)\n  --src SRC                 directory or tarball to publish (type: string, default: .)\n  --tag TAGS                distribution tags to add (type: string)\n  --run_script SCRIPT       run the given script from package.json (type: array (string, can be given\n                            multiple times), note: skips running npm publish)\n  --[no-]dry_run            performs test run without uploading to registry\n  --auth_method METHOD      Authentication method (type: string, known values: auth)\n\nCommon Options:\n\n  --cleanup                 Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                 Commands to execute after the deployment finished successfully (type: array\n                            (string, can be given multiple times))\n  --help                    Get help on this command\n\nExamples:\n\n  dpl npm --api_token token\n  dpl npm --api_token token --email email --access public --registry url --src src\n```\n\nOptions can be given via env vars if prefixed with `NPM_`. E.g. the option `--api_token` can be\ngiven as `NPM_API_TOKEN=\u003capi_token\u003e`.\n\n### nuget\n\nSupport for deployments to nuget is in **alpha**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl nuget [options]\n\nSummary:\n\n  nuget deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --api_key KEY              NuGet registry API key (type: string, required, note: can be retrieved from your\n                             NuGet registry provider, see:\n                             https://docs.npmjs.com/creating-and-viewing-authentication-tokens)\n  --registry URL             NuGet registry url (type: string, required)\n  --src SRC                  The nupkg file(s) to publish (type: string, default: *.nupkg)\n  --[no-]no_symbols          Do not push symbols, even if present\n  --[no-]skip_duplicate      Do not overwrite existing packages\n\nCommon Options:\n\n  --cleanup                  Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                  Commands to execute after the deployment finished successfully (type: array\n                             (string, can be given multiple times))\n  --help                     Get help on this command\n\nExamples:\n\n  dpl nuget --api_key key --registry url\n  dpl nuget --api_key key --registry url --src src --no_symbols --skip_duplicate\n```\n\nOptions can be given via env vars if prefixed with `[DOTNET_|NUGET_]`. E.g. the option `--api_key`\ncan be given as `NUGET_API_KEY=\u003capi_key\u003e` or `DOTNET_API_KEY=\u003capi_key\u003e`.\n\n### OpenShift\n\n\n\n```\nUsage: dpl openshift [options]\n\nSummary:\n\n  OpenShift deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --server SERVER        OpenShift server (type: string, required)\n  --token TOKEN          OpenShift token (type: string, required)\n  --project PROJECT      OpenShift project (type: string, required)\n  --app APP              OpenShift application (type: string, default: repo name)\n\nCommon Options:\n\n  --cleanup              Clean up build artifacts from the Git working directory before the deployment\n  --run CMD              Commands to execute after the deployment finished successfully (type: array\n                         (string, can be given multiple times))\n  --help                 Get help on this command\n\nExamples:\n\n  dpl openshift --server server --token token --project project\n  dpl openshift --server server --token token --project project --app app --cleanup\n```\n\nOptions can be given via env vars if prefixed with `OPENSHIFT_`. E.g. the option `--token` can be\ngiven as `OPENSHIFT_TOKEN=\u003ctoken\u003e`.\n\n### Packagecloud\n\nSupport for deployments to Packagecloud is in **alpha**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl packagecloud [options]\n\nSummary:\n\n  Packagecloud deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --username USER            The packagecloud.io username. (type: string, required)\n  --token TOKEN              The packagecloud.io api token. (type: string, required)\n  --repository REPO          The repository to push to. (type: string, required)\n  --local_dir DIR            The sub-directory of the built assets for deployment. (type: string, default: .)\n  --dist DIST                Required for debian, rpm, and node.js packages (use \"node\" for node.js\n                             packages). The complete list of supported strings can be found on the\n                             packagecloud.io docs. (type: string)\n  --[no-]force               Whether package has to be (re)uploaded / deleted before upload\n  --connect_timeout SEC      type: integer, default: 60\n  --read_timeout SEC         type: integer, default: 60\n  --write_timeout SEC        type: integer, default: 180\n  --package_glob GLOB        type: array (string, can be given multiple times), default: [\"**/*\"]\n\nCommon Options:\n\n  --cleanup                  Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                  Commands to execute after the deployment finished successfully (type: array\n                             (string, can be given multiple times))\n  --help                     Get help on this command\n\nExamples:\n\n  dpl packagecloud --username user --token token --repository repo\n  dpl packagecloud --username user --token token --repository repo --local_dir dir --dist dist\n```\n\nOptions can be given via env vars if prefixed with `PACKAGECLOUD_`. E.g. the option `--token` can be\ngiven as `PACKAGECLOUD_TOKEN=\u003ctoken\u003e`.\n\n### Puppet Forge\n\nSupport for deployments to Puppet Forge is in **alpha**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl puppetforge [options]\n\nSummary:\n\n  Puppet Forge deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --username NAME      Puppet Forge user name (type: string, required, alias: user)\n  --password PASS      Puppet Forge password (type: string, required)\n  --url URL            Puppet Forge URL to deploy to (type: string, default:\n                       https://forgeapi.puppetlabs.com/)\n\nCommon Options:\n\n  --cleanup            Clean up build artifacts from the Git working directory before the deployment\n  --run CMD            Commands to execute after the deployment finished successfully (type: array\n                       (string, can be given multiple times))\n  --help               Get help on this command\n\nExamples:\n\n  dpl puppetforge --username name --password pass\n  dpl puppetforge --username name --password pass --url url --cleanup --run cmd\n```\n\nOptions can be given via env vars if prefixed with `PUPPETFORGE_`. E.g. the option `--password` can\nbe given as `PUPPETFORGE_PASSWORD=\u003cpassword\u003e`.\n\n### PyPI\n\n\n\n```\nUsage: dpl pypi [options]\n\nSummary:\n\n  PyPI deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --username NAME               PyPI Username (type: string, required, alias: user)\n  --password PASS               PyPI Password (type: string, required)\n  --server SERVER               Release to a different index (type: string, default:\n                                https://upload.pypi.org/legacy/)\n  --distributions DISTS         Space-separated list of distributions to be uploaded to PyPI (type: string,\n                                default: sdist)\n  --docs_dir DIR                Path to the directory to upload documentation from (type: string, default:\n                                build/docs)\n  --[no-]skip_existing          Do not overwrite an existing file with the same name on the server.\n  --[no-]upload_docs            Upload documentation (default: false, note: most PyPI servers, including\n                                upload.pypi.org, do not support uploading documentation)\n  --[no-]twine_check            Whether to run twine check (default: true)\n  --[no-]remove_build_dir       Remove the build dir after the upload (default: true)\n  --setuptools_version VER      type: string, format: /\\A\\d+(?:\\.\\d+)*\\z/\n  --twine_version VER           type: string, format: /\\A\\d+(?:\\.\\d+)*\\z/\n  --wheel_version VER           type: string, format: /\\A\\d+(?:\\.\\d+)*\\z/\n\nCommon Options:\n\n  --cleanup                     Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                     Commands to execute after the deployment finished successfully (type: array\n                                (string, can be given multiple times))\n  --help                        Get help on this command\n\nExamples:\n\n  dpl pypi --username name --password pass\n  dpl pypi --username name --password pass --server server --distributions dists --docs_dir dir\n```\n\nOptions can be given via env vars if prefixed with `PYPI_`. E.g. the option `--password` can be\ngiven as `PYPI_PASSWORD=\u003cpassword\u003e`.\n\n### Rubygems\n\n\n\n```\nUsage: dpl rubygems [options]\n\nSummary:\n\n  Rubygems deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  Either api_key, or username and password are required.\n\n  --api_key KEY            Rubygems api key (type: string)\n  --username USER          Rubygems user name (type: string, alias: user)\n  --password PASS          Rubygems password (type: string)\n  --gem NAME               Name of the gem to release (type: string, default: repo name)\n  --gemspec FILE           Gemspec file to use to build the gem (type: string)\n  --gemspec_glob GLOB      Glob pattern to search for gemspec files when multiple gems are generated in the\n                           repository (overrides the gemspec option) (type: string)\n  --host URL               type: string\n\nCommon Options:\n\n  --cleanup                Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                Commands to execute after the deployment finished successfully (type: array\n                           (string, can be given multiple times))\n  --help                   Get help on this command\n\nExamples:\n\n  dpl rubygems --api_key key\n  dpl rubygems --username user --password pass\n  dpl rubygems --api_key key --gem name --gemspec file --gemspec_glob glob --host url\n```\n\nOptions can be given via env vars if prefixed with `RUBYGEMS_`. E.g. the option `--api_key` can be\ngiven as `RUBYGEMS_API_KEY=\u003capi_key\u003e`.\n\n### Scalingo\n\nSupport for deployments to Scalingo is in **alpha**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl scalingo [options]\n\nSummary:\n\n  Scalingo deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  Either api_token, or username and password are required.\n\n  --app APP              type: string, default: repo name\n  --api_token TOKEN      Scalingo API token (type: string, alias: api_key (deprecated, please use\n                         api_token))\n  --username NAME        Scalingo username (type: string)\n  --password PASS        Scalingo password (type: string)\n  --region REGION        Scalingo region (type: string, default: agora-fr1, known values: agora-fr1,\n                         osc-fr1)\n  --remote REMOTE        Git remote name (type: string, default: scalingo-dpl)\n  --branch BRANCH        Git branch (type: string, default: master)\n  --timeout SEC          Timeout for Scalingo CLI commands (type: integer, default: 60)\n\nCommon Options:\n\n  --cleanup              Clean up build artifacts from the Git working directory before the deployment\n  --run CMD              Commands to execute after the deployment finished successfully (type: array\n                         (string, can be given multiple times))\n  --help                 Get help on this command\n\nExamples:\n\n  dpl scalingo --api_token token\n  dpl scalingo --username name --password pass\n  dpl scalingo --api_token token --app app --region agora-fr1 --remote remote --branch branch\n```\n\nOptions can be given via env vars if prefixed with `SCALINGO_`. E.g. the option `--password` can be\ngiven as `SCALINGO_PASSWORD=\u003cpassword\u003e`.\n\n### Script\n\n\n\n```\nUsage: dpl script [options]\n\nSummary:\n\n  Minimal provider that executes a custom command\n\nDescription:\n\n  This deployment provider executes a single, custom command. This is\n  usually a script that is contained in your repository, but it can be\n  any command executable in the build environment.\n\n  It is possible to pass arguments to a script deployment like so:\n\n    dpl script -s './scripts/deploy.sh production --verbose'\n\n  Deployment will be marked a failure if the script exits with nonzero\n  status.\n\nOptions:\n\n  -s --script SCRIPT      The script to execute (type: string, required)\n\nCommon Options:\n\n  --cleanup               Clean up build artifacts from the Git working directory before the deployment\n  --run CMD               Commands to execute after the deployment finished successfully (type: array\n                          (string, can be given multiple times))\n  --help                  Get help on this command\n\nExamples:\n\n  dpl script --script script\n  dpl script --script script --cleanup --run cmd\n```\n\n\n\n### Snap\n\n\n\n```\nUsage: dpl snap [options]\n\nSummary:\n\n  Snap deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --token TOKEN       Snap API token (type: string, required)\n  --snap STR          Path to the snap to be pushed (can be a glob) (type: string, default: **/*.snap)\n  --channel CHAN      Channel into which the snap will be released (type: string, default: edge)\n\nCommon Options:\n\n  --cleanup           Clean up build artifacts from the Git working directory before the deployment\n  --run CMD           Commands to execute after the deployment finished successfully (type: array\n                      (string, can be given multiple times))\n  --help              Get help on this command\n\nExamples:\n\n  dpl snap --token token\n  dpl snap --token token --snap str --channel chan --cleanup --run cmd\n```\n\nOptions can be given via env vars if prefixed with `SNAP_`. E.g. the option `--token` can be given\nas `SNAP_TOKEN=\u003ctoken\u003e`.\n\n### Surge\n\n\n\n```\nUsage: dpl surge [options]\n\nSummary:\n\n  Surge deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --login EMAIL       Surge login (the email address you use with Surge) (type: string, required)\n  --token TOKEN       Surge login token (can be retrieved with `surge token`) (type: string, required)\n  --domain NAME       Domain to publish to. Not required if the domain is set in the CNAME file in the\n                      project folder. (type: string)\n  --project PATH      Path to project directory relative to repo root (type: string, default: .)\n\nCommon Options:\n\n  --cleanup           Clean up build artifacts from the Git working directory before the deployment\n  --run CMD           Commands to execute after the deployment finished successfully (type: array\n                      (string, can be given multiple times))\n  --help              Get help on this command\n\nExamples:\n\n  dpl surge --login email --token token\n  dpl surge --login email --token token --domain name --project path --cleanup\n```\n\nOptions can be given via env vars if prefixed with `SURGE_`. E.g. the option `--token` can be given\nas `SURGE_TOKEN=\u003ctoken\u003e`.\n\n### TestFairy\n\nSupport for deployments to TestFairy is in **alpha**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl testfairy [options]\n\nSummary:\n\n  TestFairy deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  --api_key KEY                TestFairy API key (type: string, required)\n  --app_file FILE              Path to the app file that will be generated after the build (APK/IPA) (type:\n                               string, required)\n  --symbols_file FILE          Path to the symbols file (type: string)\n  --testers_groups GROUPS      Tester groups to be notified about this build (type: string, e.g.: e.g.\n                               group1,group1)\n  --[no-]notify                Send an email with a changelog to your users\n  --[no-]auto_update           Automaticall upgrade all the previous installations of this app this version\n  --advanced_options OPTS      Comma_separated list of advanced options (type: string, e.g.: option1,option2)\n\nCommon Options:\n\n  --cleanup                    Clean up build artifacts from the Git working directory before the deployment\n  --run CMD                    Commands to execute after the deployment finished successfully (type: array\n                               (string, can be given multiple times))\n  --help                       Get help on this command\n\nExamples:\n\n  dpl testfairy --api_key key --app_file file\n  dpl testfairy --api_key key --app_file file --symbols_file file --testers_groups groups --notify\n```\n\nOptions can be given via env vars if prefixed with `TESTFAIRY_`. E.g. the option `--api_key` can be\ngiven as `TESTFAIRY_API_KEY=\u003capi_key\u003e`.\n\n### Transifex\n\nSupport for deployments to Transifex is in **alpha**. Please see [Maturity Levels](https://github.com/travis-ci/dpl/#maturity-levels) for details.\n\n```\nUsage: dpl transifex [options]\n\nSummary:\n\n  Transifex deployment provider\n\nDescription:\n\n  tbd\n\nOptions:\n\n  Either api_token, or username and password are required.\n\n  --api_token TOKEN      Transifex API token (type: string)\n  --username NAME        Transifex username (type: string)\n  --password PASS        Transifex password (type: string)\n  --hostname NAME        Transifex hostname (type: string, default: www.transifex.com)\n  --cli_version VER      CLI version to install (type: string, default: \u003e=0.11)\n\nCommon Options:\n\n  --cleanup              Clean up build artifacts from the Git working directory before the deployment\n  --run CMD              Commands to execute after the deployment finished successfully (type: array\n                         (string, can be given multiple times))\n  --help                 Get help on this command\n\nExamples:\n\n  dpl transifex --api_token token\n  dpl transifex --username name --password pass\n  dpl transifex --api_token token --hostname name --cli_version ver --cleanup --run cmd\n```\n\nOptions can be given via env vars if prefixed with `TRANSIFEX_`. E.g. the option `--api_token` can\nbe given as `TRANSIFEX_API_TOKEN=\u003capi_token\u003e`.\n\n## Contributing to Dpl\n\n### Table of Contents\n\n* [Resources](#resources)\n* [Navigating the Codebase](#navigating-the-codebase)\n* [Lifecycle of the Deployment Process](#lifecycle-of-the-deployment-process)\n* [Deployment Tooling](#deployment-tooling)\n* [Runtime Dependencies](#runtime-dependencies)\n* [Unit Tests](#unit-tests)\n* [Runtime Dependency Installation Tests](#runtime-dependency-installation-tests)\n* [Integration Tests](#integration-tests)\n* [Testing Dpl Branches or Forks on Travis CI](#testing-dpl-branches-or-forks-on-travis-ci)\n* [Code Conventions](#code-conventions)\n* [Naming Conventions](#naming-conventions)\n* [Updating the README](#updating-the-readme)\n\nDpl is a central component in Travis CI, and has been around for a long time.\n\nThis library always has been a community effort first. There probably is not a\nsingle person in the world who is very familiar with all deployment providers\nsupported by Dpl.\n\n*Thank you all for this!*\n\nThis document is for you if you are looking to contribute to dpl, be it by\nadding a new deployment provider, fixing a bug, or adding a new feature.\n\nDpl has a [code of conduct](CODE_OF_CONDUCT.md), please follow it in all\ninteractions with the project.\n\nDpl is written in Ruby, and we assume that you familiarize yourself with our\ndocumentation as much as needed.\n\n### Resources\n\nHopefully helpful resources are:\n\n* This [document](CONTRIBUTING.md)\n* The [dpl README](README.md)\n* The [dpl API docs](https://www.rubydoc.info/github/travis-ci/dpl) on rubydocs.info\n* The [cl README](https://github.com/svenfuchs/cl/blob/master/README.md)\n\n### Navigating the Codebase\n\nAll provider specific classes live in [dpl/providers](lib/dpl/providers).\nThese represent the CLI commands that are executed when the command line\nexecutable `dpl` is run with a given provider name as the first argument.\n\nEach provider is a subclass of `Dpl::Provider`, which is defined in\n[dpl/provider.rb](lib/dpl/provider.rb). The provider base class itself\nsubclasses from `Cl::Cmd`, so it represents an executable sub command of the\nmain command `dpl`.\n\nFor instance, the command `dpl s3 --bucket bucket` instantiates and runs the\nprovider class [S3](lib/dpl/providers/s3.rb).\n\nThe class `Cl::Cmd` contributes the command line options parser, and its\nclass level DSL. Please see the [cl README](https://github.com/svenfuchs/cl/blob/master/README.md)\nfor this DSL, and the [S3 provider](/lib/dpl/provider/s3.rb)\nfor an example how dpl uses it.\n\nThe class `Dpl::Provider` adds, amongst other things, the order of stages\n(methods) that make up the deployment process:\n\n* `init`\n* `install`\n* `login`\n* `setup`\n* `validate`\n* `prepare`\n* `deploy`\n* `finish`\n\nImplementors of concrete provider classes may or may not choose to implement\nany of these instance methods according to their needs, and semantics of their\ntooling and service providers. Please refer to [Dpl::Provider](/lib/dpl/provider.rb)\nfor details.\n\nThe DSL that is used to declare features, dependencies, environment integration\netc. on the concrete provider classes is defined in the module\n`Dpl::Provider::DSL`, in [dpl/provider/dsl](/lib/dpl/provider/dsl.rb).\n\nAlso of interest is [Dpl::Ctx::Bash](/lib/dpl/ctx/bash.rb),\nthe Bash execution context, that runs shell commands, installs dependencies\netc. (while the `Test` context class is used for testing in order to keep your\ndevelopment machine clean and safe when you run tests locally).\n\n```\nlib\n└── dpl\n    ├── assets                # Stores larger shell scripts\n    ├── ctx\n    │   ├── bash.rb           # Bash execution context\n    │   └── test.rb           # Test execution context\n    ├── provider.rb           # Base class for all providers\n    ├── provider\n    │   ├── dsl.rb            # DSL for defining providers\n    │   └── example.rb        # Generating example commands for help output\n    └── providers\n        ├── anynines.rb       # Concrete providers\n        ├── atlas.rb\n        ├── azure_webapps.rb\n        ├── bintray.rb\n        ├── bitballoon.rb\n        └── ⋮\n```\n\n### Lifecycle of the Deployment Process\n\nWhen a provider class is instantiated and run it will go through a number\nof stages that make up the deployment process.\n\nThese are documented in [dpl/provider.rb](/lib/dpl/provider.rb).\nIf you are adding a new deployment provider please familiarize yourself with\nthis lifecycle.\n\nFeel free to pick and interpret these stages according to the needs and\nsemantics of the service provider you are adding. By no means do all of these\nstages have to be filled in or implmented. The `Provider` base class checks for\nthese methods, and runs them, if present, so that implementors can choose\nsemantically fitting names for their providers.\n\n### Deployment Tooling\n\nIf you are adding a new deployment provider please choose the tooling you are\ngoing to use carefully.\n\nDpl is a long lived library, and it has outlived many tools that once were\nsupported, and no longer are. Thus tooling stability is a major concern for\nthis project.\n\nIdeally use official CLI tooling supported by the company who's service\nprovider you are about to add. Often, such CLI tools can be installed via\nstandard package managers, or manually downloaded using `curl` and installed\nwith a few simple Bash commands.\n\nSuch CLI tooling is preferrable over Ruby gem runtime dependencies as they can\nbe executed in a child process, and won't introduce any dependency resolution\nproblems later on.\n\nIf no such CLI is available, or it does not look well supported, and your\nprovider implementation needs to talk to an external HTTP API then please consider\nusing [Net::HTTP](https://ruby-doc.org/stdlib-2.6.3/libdoc/net/http/rdoc/Net/HTTP.html)\nfrom Ruby's standard library.\n\nIf you absolutely have to rely on a runtime Ruby gem dependency, such as a\nprovider client implementation, please only do so if the gem is supported by\nthe respective company officially. We may choose to reject including runtime\ndependencies that do not look stable or widely supported.\n\n### Runtime Dependencies\n\nRuntime dependencies can be declared on the provider class using the\n[DSL](lib/dpl/provider/dsl.rb).\n\nIn the case of APT, NPM, and Pip dependencies these will be installed via\nshell commands at the beginning of the deployment process.\n\nRuby gem dependencies will be installed using Bundler's [inline API](https://github.com/bundler/bundler/blob/master/lib/bundler/inline.rb),\nat the beginning of the deployment process, so they are available in the same\nRuby process from then on.\n\n### Unit Tests\n\n`Dpl` uses [RSpec](https://github.com/rspec) for tests. The specs reside in\n`spec`, and each provider class has a corresponding file\n`spec/dpl/providers/*_spec.rb` to hold tests.\n\nProvider tests should be implemented on an input/output acceptance level, as\nmuch as possible.\n\nThey use a [Ctx::Test](blob/masterlib/dpl/ctx/test.rb) execution context in\norder to avoid running actual shell commands, or actually installing\ndependencies at test time. There are custom [RSpec matchers](spec/support/matchers)\nin place that help with making assertions against this execution context.\n\nIf your provider has to talk to an external HTTP API then ideally use\n[Webmock](https://github.com/bblimke/webmock) to stub external requests. If by\nany means possible try to avoid mocking or stubbing Ruby client classes (this\nis not always possible, but should be considered).\n\n#### Running Unit Tests Locally\n\nYou can run the unit test suite locally as follows:\n\n```\nbundle install\nbundle exec rspec\n```\n\nIn order to execute tests only for a certain provider you can run:\n\n```\nbundle exec rspec spec/dpl/providers/[provider]_spec.rb\n```\n\nIn order to execute a single test or group of tests add a line number like so:\n\n```\nbundle exec rspec spec/dpl/providers/[provider]_spec.rb:25\n```\n\nThese tests can be run safely on any development machine, anywhere.\n\n### Runtime Dependency Installation Tests\n\nWe additionally run tests that exercise runtime dependency installation on\nTravis CI.\n\nThese live in [.travis/test_install](.travis/test_install). It is not\nadvisable to run these tests outside of an ephemeral VM or container that can\nbe safely discarded, as they are going to leave various artifacts around.\n\n### Integration Tests\n\nIn order to ensure proper integration with the service providers supported\nwe also periodically run a test suite that exercises actual deployments to\nthese providers.\n\nThese tests live in [.travis/providers](/.travis/providers), and the are\ntriggered using the script [trigger](/.travis/trigger).\n\nAn integration test consists of:\n\n* A setup script that creates an application (or artifact) to deploy (or\n  upload).\n* A YAML config snippet that configures and triggers the deployment as part of\n  a build on Travis CI.\n* A test script that tests if the deployment was successful.\n\nFor example:\n\n* [github-pages/prepare](/.travis/providers/github-pages/prepare)\n  creates a minimal Git repository that serves an `index.html` on GitHub Pages in a temporary directory.\n* [github-pages/travis.yml](/.travis/providers/github-pages/travis.yml)\n  configures the build to use Dpl 2.0 to deploy this repository to GitHub Pages.\n* [github-pages/test](/.travis/providers/github-pages/test)\n  tests if the deployment was successful.\n\nThe tests can be run on Travis CI individually, or combined, by triggering a\nbuild via our API, using the script [.travis/trigger](/.travis/trigger).\nThis takes a provider name as an argument, and requires a Travis CI API token.\n\nFor example, this triggers a build that executes the GitHub Pages test on\nTravis CI:\n\n```\n.travis/trigger github-pages --token [token]\n```\n\nThe token can also be set as an environment variable:\n\n```\nexport TRAVIS_API_TOKEN=[token]\n.travis/trigger github-pages\n```\n\nThe `trigger` script accepts multiple provider names as arguments. If no\narguments are given then tests for all providers will be run.\n\n#### Integration Test Configuration\n\nIn the build config YAML snippet make sure to use the branch of your fork for the\ndeployment tooling, and allow the deployment to run on your branch:\n\n```yaml\ndeploy:\n  - provider: [name]\n    edge:\n      source: [your-login]/dpl\n      branch: [your-branch]\n    on:\n      branch: [your-branch]\n```\n\nIdeally use credentials for an isolated account on the service you are deploying to.\nThis is generally good practice, and way you can hand things off to someone else.\n\nIn order to get things working encrypt the credentials against your fork, and\nadd them to the build config YAML snippet. If you are in the root directory\nof your fork then this command should do the trick:\n\n```\ntravis encrypt password=[password]\n```\n\nIf you do not have the `travis` CLI installed you can install it using:\n\n```\ngem install travis\n```\n\nWhen you add encrypted credentials to the build config YAML snippet also add a comment\nthat allows others to identify the account used. E.g:\n\n```yaml\ndeploy:\n  - provider: pages\n    github_token:\n      # personal access token with repo scope on the account [name]\n      secure: \"[encrypted token]\"\n```\n\nOpen a pull request. In order for us to merge your test, and get it working on\nour repository you will need to re-encrypt the credentials against\n`travis-ci/dpl`, like s","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftravis-ci%2Fdpl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftravis-ci%2Fdpl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftravis-ci%2Fdpl/lists"}