Docker Travis Odroid (ARMHF) Buildflow

DevOps is never that interesting of a topic. The best outcome of a great solution is that it works and end users are none-the-wiser. Given that, I'll be brief with our setup and point you toward all the pieces as examples.

The idea behind our on-board system build flow is based in docker and follows these steps:

  1. The Dockerfile for the base image that goes on the Odroid XU4 lives in a separate repo from the main codebase. It auto-builds on DockerHub on push, installing all project dependencies (but not project code).
  2. A new commit to the Seanmatthews/rowboat1 repo (main codebase) triggers a Travis CI build.
  3. Travis CI pulls the base image from rowboat/rowboat-base-images:$VERSION, installs and build project code, then pushes a new image to rowboat/rowboat-tested-build:$TRAVIS_BRANCH$TRAVIS_BUILD_NUMBER.
  4. In order to get the latest project software, an onboard device would pull the latest image from rowboat/rowboat-tested-build.