Given the upcoming demise of snap-ci I have been working on finding a replacement.
Snap-ci allowed my team to work exclusively on a single master branch and have tests run on every push. From this it could be manually pushed to a series of environments in a strict order:
qa -> demo -> live
We assessed a large range of cloud hosted providers to attempt to replicate this.
Gitlab came close, but was too unreliable (eventual consistency left a ui that was inconsistent on a single page!)
Circle-ci is our current contender. We can build everything that we need but temporarily have resorted to Jenkins to provide our deployment pipelines. Circle-ci have promised that these will be available soon (within a few months).
Circle CI does respond very rapidly to git pushes (something that snap-ci had been rather sluggish). The integrated error log viewing is a distinct improvement (snap made you download a tarfile containg a zip of the test reports – it was three steps to see the detailed error).
We looked at using heroku build pipelines but found it lacking in the hooks needed for pre-deploy steps. We use these to trigger our database migrations (also cdn and cms configuration ) before restarting the apps.