Continuous Integration

You can configure Solano CI for “continuous integration” – automatically running tests when you commit new code – using our GitHub integration, or using our CLI.

After setting up continuous integration, Python users will need to put a solano.yml file in the repository to describe their tests; see Python. Ruby users may also do so to customize how tests run; see Language-Specific Guides.

GitHub

If you’ve linked your GitHub account, the first view you’re presented with is a list of your GitHub repos. From there, you can choose branches for automatic builds. If you’ve logged in via GitHub, Solano CI will automatically configure your repos to build by installing Web Hooks to notify on each commit and setting up SSH keys to allow Solano CI to pull your repos.

Diagram showing the described configuration interface: 1. choose a Ruby version, 2. enable branches with the toggles, 3. toggle branches off when done

Solano CI will also configure your GitHub account with a key that will allow tests in your Solano CI account to clone your private github repos (e.g. as part of installing packages), if you depend on any.

CLI

To configure continuous integration using the CLI, use the solano suite command. You will be asked for two parameters:

  • Your Git repository’s URL to fetch commits from
  • Optionally, a Git URL to push to when tests pass (e.g., a Heroku app)

The command will then print a URL at which to notify Solano CI of pushes, and an SSH public key that Solano CI will use to fetch your commits to test. Once you configure your Git repository’s post-receive hook to POST to the URL, and to authorize the SSH key for fetches, your CI configuration will be complete.

If you want Solano CI to push your commits somewhere when tests pass (e.g., a Heroku app), then you will also need to authorize Solano CI there.

More Details

For details on setting up CI in your repo, instructions on how to configure a non-Github repository with post-receive hooks, and troubleshooting information, see Continuous Integration Details.

Run Solano CI from the CLI

To use Solano CI from the CLI, first install the Solano CI client. You’ll need Ruby installed:

$ sudo apt-get install ruby1.9.3   # on Debian or Ubuntu
$ sudo yum install ruby rubygems   # on Fedora, CentOS, RHEL

Or use your favorite Ruby environment manager like rvm or rbenv.

Then install Solano CI:

$ sudo gem install solano

(Ruby users may add the solano gem to Gemfile and run bundle instead.)

Once installed, log in to Solano CI by running

$ solano login

Enter the email address and password you used when you signed up. You’ll be prompted to authorize an SSH public key. You can add and remove SSH authorized keys at any time using the solano keys command.

At this point, Python users should describe their tests in a solano.yml file – see Python. Ruby users can proceed, and Solano CI will recognize standard configurations. If using a solano.yml, be sure to add and commit so that it becomes part of the repository.

Now run your tests:

$ solano run

The solano run command will automatically register a test suite for your repo and branch, and start a test run. It prints results in real time, plus a link to the detailed report page on the Web.