$295.00 USD

Embedded DevOps: A Primer on Build Systems and CI/CD Pipelines

Live Sessions every Tuesday @ 11 - 12:30 Eastern Time from November 14 - December 12, 2023. 

Embedded software development is a crucial aspect of modern technology, enabling the functionality of countless devices we interact with daily. To excel in this field, it is essential to have a solid understanding of build systems, continuous integration, and deployment strategies. This workshop aims to provide a comprehensive primer on these vital practices, equipping participants with the knowledge and skills necessary to tackle complex firmware projects with confidence.

 In this workshop, participants will delve into the fundamentals of build systems, exploring the inner workings of popular tools such as Make and CMake. Through hands-on exercises and real-world examples, attendees will gain practical experience in configuring build systems, managing dependencies, and optimizing firmware compilation and deployment processes. We’ll explore how to containerize your build environment in Docker, so that you can easily integrate it into an embedded CI/CD pipeline. You’ll also learn how to use Visual Studio Code to seamlessly integrate your build processes within a single environment.

Moreover, you’ll also learn about CI/CD fundamentals and how to apply modern pipeline concepts to embedded software development. This workshop will introduce you to how to design and implement a CI/CD pipeline with common tools like Gitlab and Github Actions. You’ll learn not just how to design a pipeline, but gain experience building one yourself. Participants will learn how to set up and leverage these tools to effectively modernize their development cycle. You will also learn about how you can leverage Artificial Intelligence tools to accelerate your implementation.

Key topics covered in this workshop include:

  • Build System Containerization: Docker for Embedded Developers
  • Introduction to build systems: Understanding their role in firmware development and exploring popular tools such as Make and CMake.
  • Configuring build systems: Creating efficient build configurations, managing dependencies, and integrating external libraries.
  • CI/CD pipeline design for embedded systems
  • Set up and deployment of CI/CD solutions
  • Example CI/CD processes
  • Leveraging AI tools to accelerate development

The workshop includes five sessions on the following topics:

Session 1: DevOps, Build Systems, and Containerization using Docker

Session 2: Modernizing your build system with Make and CMake

Session 3: CI/CD Strategies for Embedded Systems

Session 4: Creating and Configuring CI Pipelines

Session 5: Creating and Configuring CD Pipelines

By the end of this workshop, participants will have a solid understanding of build systems, automated testing, and CI/CD strategies with practical application for embedded systems development. Armed with these skills, attendees will be well-equipped to navigate the complexities of firmware projects, streamline their development processes, and deliver robust and optimized embedded systems.

Join us for this immersive workshop and unlock the keys to mastering modern embedded software practices through an in-depth exploration of build systems and CI/CD strategies.

Detailed Session Descriptions:

Session 1: DevOps, Build Systems, and Containerization using Docker

In this introductory session, participants will learn how to alleviate development challenges using modern embedded software practices with DevOps. You will learn about the benefits DevOps provides and design a containerized build environment using Docker. By the end of this session, participants will have a solid understanding of the role of build systems, DevOps practices, and their combined benefits in enabling efficient and streamlined firmware development processes.

Lab Session: Creating a portable and reusable build system using Docker. You’ll use also use a LLM tool to help you optimize it’s performance.  

 

Session 2: Modernizing your build system with Make and CMake

Building upon the foundation established in the previous session, you will focus on designing and implementing a build system. Participants will learn how to set up and customize popular build system tools such as CMake and Make. Through hands-on exercises, we will explore techniques for managing dependencies, integrating external libraries, and optimizing the build process for improved performance. By the end of this session, attendees will be equipped with practical skills to streamline their firmware builds and enhance their development workflow.

Lab Session: Configuring and optimizing a make and cmake build system.

 

Session 3: CI/CD Strategies for Embedded Systems

In this session, you’ll learn the fundamental concepts for CI/CD pipeline design and implementation for embedded systems. You’ll learn how to create a CI/CD roadmap and get hands-on by starting the implementation. Participants will learn how to integrate their build system with a CI/CD solution like Github Actions and Gitlab to automate their build process. Through practical examples and demonstrations, participants will gain insights into designing their own CI/CD pipelines and understand the various tools and technologies used to accomplish it.

Lab Session: Develop a CI/CD strategy for an example embedded project and create the pipeline skeleton.

 

Session 4: Creating and Configuring CI Pipelines

Building upon the knowledge acquired in the previous session, this session will focus on the practical aspects of setting up and leveraging CI pipelines. Participants will learn step-by-step instructions for configuring and integrating CI pipelines with your build system. Hands-on exercises will enable participants to gain practical experience using the CI pipeline, including running automated unit tests and baseline code analytics. By the end of this session, attendees will be able to effectively harness the power of CI pipeline to accelerate their development cycles.

Lab Session: Create, configure, and deploy a CI pipeline that builds, tests, and analyzes and example firmware project.

 

Session 5: Creating and Configuring CD Pipelines

In the final session of the workshop, we will explore how to deploy firmware to an embedded system using a CD pipeline. Participants will get hands-on experience deploying to a local system while learning about the practices for larger deployments. By the end of this session, participants will be equipped with the knowledge to CD for embedded software projects effectively in their own firmware projects.

Lab Session: Create, configure, and deploy a CD pipeline that automatically deploys firmware to an embedded target.