Custom Deployment

You can deploy to your own server the way you would deploy from your local machine by adding a custom after_success step.

You may choose the Script provider instead, as it provides conditional deployment.

SFTP #

env:
  global:
  - 'SFTP_USER=[user]'
  - 'SFTP_PASSWORD=[password]'
  - 'SFTP_KEY=[base64-encoded-rsa-key]'
after_success:
- echo "${SFTP_KEY}" | base64 --decode >/tmp/sftp_rsa
- curl --ftp-create-dirs
       -T filename
       --key /tmp/sftp_rsa
       sftp://${SFTP_USER}:${SFTP_PASSWORD}@example.com/directory/filename

The env variables SFTP_USER and SFTP_PASSWORD can also be encrypted.

See curl(1) for more details on how to use cURL as an SFTP client.

Git #

This should also work with services you can deploy to via git.

after_success:
  - eval "$(ssh-agent -s)" #start the ssh agent
  - chmod 600 .travis/deploy_key.pem # this key should have push access
  - ssh-add .travis/deploy_key.pem
  - git remote add deploy DEPLOY_REPO_URI_GOES_HERE
  - git push deploy

See “How can I encrypt files that include sensitive data?” if you don’t want to commit the private key unencrypted to your repository.