I have github hooked up to travis. When a new PR (or commit) is pushed travis shoves the app into its container, and runs the test suite inside the container.
If that passes AND the branch is master we push the image to docker hub. As of now we manually update the app inside of rancher but I think automating that will be a simple API call. Once we get more stable I'll be investigating that.
I still haven't quite figured out secret management but outside of that and a tiny learning curve it's been pretty smooth sailing.
An example travis config: https://github.com/OperationCode/operationcode_bot/blob/mast...