Most Solano CI users set up continuous integration and also take advantage of the CLI; you can start with either one.
- Sign Up
- Use Solano CI from the CLI
- Continuous Integration (build automatically whenever you push changes)
- Databases and Configuration
If you don’t already have a Solano CI account, create a free trial at www.solanolabs.com.
Read on to start by setting up automatic builds via our Continuous Integration support, or skip to Use Solano CI from the CLI to start with our command-line interface. If you use GitHub, you can start running tests without leaving your browser.
Most users configure Solano CI for continuous integration – automatically running builds and tests when you commit new code. Read on for an overview of continuous integration with Solano CI; deep-dive details and a discussion of custom integrations is also available.
Many settings for CI, including building of only Pull Requests and setting branch filters using patterns, are configurable from the repo settings page accessible from the dashboard entry for the repository.
After telling Solano CI how to pull your repo, you will probably need to
check in a
solano.yml file in your repository to describe your build
process and tests. See our Language-Specific Guides for more details.
You can configure a new repository for CI from your Solano Dashboard. There are two ways to get set up:
- Specifying your repo URL, or
- Automatic setup for GitHub repos
Read on for more details about each option.
By Repo URL¶
To set up a repo for Solano CI, you need to:
- Tell us the URL where it’s located (on your source control system)
- Configure a repo hook to send an HTTPS POST webhook request to our servers whenever changes are pushed to it
- Authorize a Solano SSH Key to pull/clone from your repo’s URL when it receives a webhook
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.
Use Solano CI from the CLI¶
Solano CI has a full-featured CLI that supports interacting with our platform, 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
Then install Solano CI:
$ sudo gem install bundler solano
(Ruby users may add the
solano gem to
Gemfile and run
Once installed, log in to Solano CI by running
$ solano login
If you have a Solano Private CI instance running at
can save it as the default endpoint with the
solano server:set command.
$ solano server:set --host solano.yourdomain.com
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
At this point, Java, PHP, and Python users should describe their tests in a
solano.yml file – see Python or our other
Language-Specific Guides. Ruby users can proceed, and Solano CI will
recognize standard test frameworks and prep steps automatically. If using a
solano.yml, be sure to add and commit so that it becomes part of the
Now run your build and tests:
$ solano run
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.
Databases and Configuration¶
Solano CI supports most popular database services. For a complete list, see our Compatibility page.
Each service is started automatically based on dependency analysis of your application and manual configuration via solano.yml. In some cases you may need to write a short script to complete the setup process, for instance to load the database schema. You can do this by definining a setup hook.
For instance, Solano CI will start a PostgreSQL server if you are using
Ruby and your Gemfile includes the
For details on database setup, see Databases and Search.