Travis CI is moving fast, quickly approaching the 70,000 project mark. To make sure you get the best CI experience, we want to keep you up to date with what’s going on. So here is a few things that landed recently.
We’ve recently launched built-in continuous deployment support for Heroku and Nodejitsu and have heard back from the first happy users. We’ve looked at your feedback and are happy to tell you about our two new deployment features.
Restarting Heroku applications
Sometimes you need to restart your Heroku application after running some command. One example is running migrations for a Rails application, which only loads the database schema on boot.
You can now simply add
restart to the
run section of your
deploy: provider: heroku run: - "rake db:migrate" - restart
This also works in between two steps!
Deploying build artifacts
After your tests ran and before the deploy, Travis CI will clean up any additional files and changes you made.
Maybe that is not what you want, as you might generate some artifacts (think asset compilation) that are supposed to be deployed, too. There is now an option to skip the clean up:
deploy: skip_cleanup: true
Setting Heroku buildpack
deploy: provider: heroku buildpack: ruby
Command Line Tool
Our command line client also got a few new features that should make your life easier. Get the latest version by running
$ gem install travis
If that command doesn’t work, make sure you have Ruby installed.
Initializing a project for Travis CI
If you want to set up a project on Travis CI, you can now run
travis init, which will create a
.travis.yml with some sane defaults and enable the project, so the next push to GitHub will trigger a new build.
$ travis init Main programming language used: java .travis.yml file created! example/project: enabled :)
.travis.yml generated from the above example looks like this:
language: java jdk: - oraclejdk7 - openjdk6
You can also pass in a lot of options to influence the generated configuration:
$ travis init ruby --rvm 1.8.7 --rvm 1.9.3 --script "rake test" .travis.yml file created! example/project: enabled :)
Setup wizard for continuous deployment and addons
When setting up continuous deployment or an addon, you probably spend some time looking at the docs figuring out which options to set and if you should encrypt some of them.
To ease that, we now offer a
travis setup command that you can run in your project directory:
[~/travis-api]$ travis setup heroku Heroku application name: |travis-api| Deploy only from travis-ci/travis-api? |yes| Encrypt API key? |yes|
You can also use this for setting up Sauce Connect:
[~/travis-api]$ travis setup sauce_connect Sauce Labs user: rkh Sauce Labs access key: *************** Encrypt access key? |yes|
Improved value encryption
When you add encrypted environment variables, you don’t want to override existing variables, which is why the
travis encrypt command turns it into a list if it isn’t already and appends the new value.
However, this causes issues when you re-encrypt for instance a deploy token, as you might accidentally turn it into a list with two entries even though you wanted to override the old one.
Therefore, by default,
travis encrypt will only use the former behavior for
env values and override the current value otherwise. You can change this via
$ travis encrypt "my secret" --add env.global --override
Keep in mind that using
--add requires you to run the command from inside the project directory.
Branch overview and details
Similar to the “Branches” tab in the web interface, you can now get a branch overview in the console:
Accessing the public key
You can now access a repo’s public key by running
$ travis pubkey -r travis-ci/travis Public key for travis-ci/travis: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC ...
travis commands, this is pipe friendly:
$ travis pubkey -r travis-ci/travis --pem > travis.pem
Lots of small fixes
There were a lot of small improvements, especially dealing with edge cases and encodings. The documentation and error messages have also seen some love.