This guide describes how to use Jenkins and Docker in a continuous integration development flow. The audience for this guide is embedded software developers. In the guide, we also address the topic of testing platforms, by highlighting the capabilities of virtual hardware models using Arm Fast Model technology. Using a continuous integration methodology helps to minimize problems during software development, for example large merge conflicts, duplicated effort, and non-reproducible bugs.

Continuous integration practices with Jenkins, Docker containers, and Arm Fast Models provide a consistent and automated foundation for your embedded software development work.

We will work through the following topics in the guide:

  • Running a "hello world" application on a virtual Arm Cortex-M4 system in a custom Docker container.
  • Implementing a test to verify the completion of the app.
  • Configuring Jenkins to automate the test flow that we developed.

Before you begin

We assume that you have a basic knowledge of embedded software development on Arm. Docker, Jenkins, and Arm Fast Models will be explained in the guide.

A high-level understanding of Python is helpful but is not required.

You need to have the following items installed to work though the examples in this guide:

  • An evaluation license for Arm Fast Models. You can obtain a free 30-day license by emailing license.support@arm.com and   specifying that you want to use a Cortex-M4 CPU to follow this guide.
  • zip file with the code that you will need to replicate the example in this guide.