Engine Yard Deployment

This page documents deployments using dpl v1 which currently is the default version. The next major version dpl v2 will be released soon, and we recommend starting to use it. Please see our blog post for details. dpl v2 documentation can be found here.

Travis CI can automatically deploy your Engine Yard application after a successful build.

For a minimal configuration, all you need to do is add the following to your .travis.yml:

deploy:
  provider: engineyard
  api_key: "YOUR API KEY"

You can also use email and password instead of api_key. It is recommended to encrypt the key/password.

Optional settings include: app, account, environment and migrate.

You can also have the travis tool set up everything for you:

$ travis setup engineyard

Keep in mind that the above command has to run in your project directory, so it can modify the .travis.yml for you.

Application or Environment to deploy #

By default, we will try to deploy to an application by the same name as the repository. For example, if you deploy an application from the GitHub repository travis-ci/travis-chat without explicitly specify the name of the application, Travis CI will try to deploy to a Engine Yard app named travis-chat.

You can explicitly set the name via the app option:

deploy:
  provider: engineyard
  api_key: ...
  app: my-app-123

It is also possible to deploy different branches to different applications:

deploy:
  provider: engineyard
  api_key: ...
  app:
    master: my-app
    foo: my-foo

This branch specific settings are possible for all options (except on) and can be very useful for deploying to different environments:

deploy:
  provider: engineyard
  api_key: ...
  environment:
    master: staging
    production: production

Branch to deploy from #

If you have branch specific options, as shown above, Travis CI will automatically figure out which branches to deploy from. Otherwise, it will only deploy from your master branch.

You can also explicitly specify the branch to deploy from with the on option:

deploy:
  provider: engineyard
  api_key: ...
  on: production

Alternatively, you can also configure it to deploy from all branches:

deploy:
  provider: engineyard
  api_key: ...
  on:
    all_branches: true

Builds triggered from Pull Requests will never trigger a deploy.

Running migrations #

You can trigger migrations by using the migrate option:

deploy:
  provider: engineyard
  api_key: ...
  migrate: "rake db:migrate"

Conditional releases #

You can deploy only when certain conditions are met. See Conditional Releases with on:.