Setting Up Automated Firmware Builds

Automated Firmware Builds

Why do you need automated firmware builds (sometimes called a Continuous Integration (CI) pipeline) for your embedded project?

Oftentimes we have found  that customers do not trust their firmware release process because their firmware builds require some tribal knowledge. It can be a challenge to set up machines to produce consistent builds across an entire team, and may even require expensive dongles to get working. Occasionally there’s a build machine in the corner of the room which can help, but is still less than ideal. A CI pipeline automatically compiles, analyzes, and tests releases, while allowing output files and reports to be distributed accordingly. All of this can be triggered simply without user intervention when code changes are pushed to the source control provider.

Book a Call with Dojo Five Embedded Experts

Ways to set up an embedded CI pipeline

YAML file

Most existing CI tools require some kind of YAML config file to kick off the CI pipeline. If you have your repository on GitLab, you can get started with GitLabs’ built-in CI pipeline by adding a .gitlab-ci.yml file in your repository. Next you will need a Gitlab Runner which is an application used by GitLab to process builds. If you instead use Bitbucket, they also have built in CI/CD pipelines that you may leverage. You will just need to include a bitbucket-pipelines.yml file in your repository and set up a Runner application.

Docker image

By adopting Docker image in your CI workflow, in other words, using the image in the YAML file, it creates an environment for you to build your firmware. In the Docker container, you can install the compiler, run make, etc. This allows for you to build your firmware, create and save the output as an artifact that you can use to flash your device consistently across multiple different host machines. On Docker hub, you can find some existing Docker images with a compiler installed such as gcc:latest.

Remote Virtual Machines

Now, for a more complicated scenario. Picture your repository is hosted on Bitbucket and it is an IAR based project. You have engineers working remotely from all over the world. IAR Embedded Workbench only runs on Windows which would add additional complexity when installing the IAR Embedded Workbench in a Docker container. Not to mention IAR licenses are expensive!

So how can we get around these constraints? One option is to leverage virtual machines like those available on Amazon EC2. For the CI Runner, BitBucket offers self-hosted runner applications that may be installed on many windows environments. Once you have a valid Windows instance and Runner setup, you just need an IAR license installed and you will be ready to start using your new pipeline. Just don’t forget to include a .gitlab-ci.yml file in your repository!

Summary

While setting up a CI pipeline can be time consuming and frustrating, the benefits can be seen almost immediately! No more worrying about differences between build machines, no more reliance on tribal knowledge, and peace of mind from continuous testing across releases. If you need help getting started with your CI pipeline, we would love to hear from you! You can book a call with us to start the conversation. We have tools and experience to help you along the way.

Discover why Dojo Five EmbedOps is the embedded enterprise choice for build tool and test management.

Sign up to receive a free account to the EmbedOps platform and start building with confidence..

  • Connect a repo
  • Use Dev Containers with your Continuous Integration (CI) provider
  • Analyze memory usage
  • Integrate and visualize static analysis results
  • Perform Hardware-in-the-Loop (HIL) tests
  • Install the Command Line Interface for a developer-friendly experience

Subscribe to our Monthly Newsletter

Subscribe to our monthly newsletter for development insights delivered straight to your inbox.

Interested in learning more?

Best-in-class embedded firmware content, resources and best practices

Dojo Five Embedded Reading List 2025

What is Dojo Five Reading in April 2025?

“Dojo” translates to “place of the way” and represents an environment for immersive learning. Here at Dojo 5, we prioritize that learning by encouraging our engineers to always be on the look out for the latest news, new technologies, and new tools that help us modernize the firmware product development and deployment experience for our clients. To help other engineers expand their knowledge as well, here’s a collection of interesting blogs, news, and tools that our engineers have been reading

Read More »
Hiring Isn't Enough: Building a More Resilient Firmware Team

Hiring Isn’t Enough: Building a More Resilient Firmware Team

Hiring experienced embedded firmware engineers has never been easy. Today, it’s even harder. Long hiring cycles, increasing technical complexity, and competition for experienced talent mean many engineering leaders are asking the same question: How do we build a stronger team when the people we need are so hard to find, and the products we ship can’t afford to fail? The answer usually isn’t recruiting alone. The most resilient teams invest in hiring, but they also create an environment where engineers

Read More »
Dojo Five Embedded Reading List 2025

What is Dojo Five reading in June 2025?

“Dojo” translates to “place of the way” and represents an environment for immersive learning. Here at Dojo 5, we prioritize that learning by encouraging our engineers to always be on the look out for the latest news, new technologies, and new tools that help us modernize the firmware product development and deployment experience for our clients. To help other engineers expand their knowledge as well, here’s a collection of interesting blogs, news, and tools that our engineers have been reading

Read More »