One of the most powerful parts of Salesforce DX and the new scratch org model is that it allows you to quickly create fresh orgs for doing unit and integration testing of your code.
The trailhead module on Continuous Integration walks us through getting this working on TravisCI.
The sample project on GitHub is well documented and is a great starting place for getting this working on a CI provider of your choice. Once you are up and running things are pretty straightforward. However getting started can be a bit tricky because you need find a way to get a secret key that is used in the Oauth dance to be securely available in your CI process.
On Travis, they have a really nice encrypted file feature that lets you quickly encrypt and decrypt files on the fly. This is a perfect for this sort of thing.
I am working on getting a sample project in place for getting this same workflow to work on CircleCI and I hope to have the kinks ironed out in the next few days.