Automating the Deployment of a Reusable Project Skeleton

Please log in to access your purchased courses.

Embedded systems software developers are faced with a difficult challenge in today’s world: how can we build systems at a high quality with increasingly tight schedules? Our systems are getting more complex, and it always feels like we have less time to build them. We need to find a way to turn the tables on this situation.

At Embedded Artistry, we believe that one solution is to increase the capabilities of embedded systems developers and teams. We can increase everyone’s output quality and productivity by leveraging tools and creating reusable software components. We need to make it easier to do a good job by default.

This course is the third in a series that outlines our approach to increasing your embedded software development capabilities. One way to improve your capabilities is to stop performing repeated tasks over and over again. Never do something twice if you can help it!

Imagine this scenario. You need to set up a repository for a new internal project. You create the new repository and run a single shell command that takes the repository URL as an argument. Less than a minute later, your repository has been configured to use your organization’s standard project skeleton, ensuring that even an experimental prototype will have out-of-the-box support for cross-compilation, quality enforcement, and CI processes.

If that’s a world you want to live in, this is the course for you.

Our focus in this course is automating the deployment a reusable project skeleton. Rather than manually copying and pasting files to set up a new project, we should be able to initialize it with a single shell command. We should also have the ability to set up a new development or CI machine in an automated way. This simplifies the on-boarding process for new developers and ensures a consistent environment.

The capabilities developed in this course move us closer to the end goal: we can deliver projects at a faster rate.

Automating the Deployment of a Reusable Project Skeleton

In this course, we guide you through automating the process of deploying your reusable project skeleton to a new project. We also guide you through automating the setup process for a new development machine.

Note: If you do not have a project skeleton that you can use to quickly bring up new projects, we recommend the Meson or CMake version of Building a Reusable Project Skeleton.

In this course, you will learn how to do the following:

  • Automate the setup of a new Git project using a project skeleton with submodules
  • Configure the deployment script to support multiple usage options
  • Create Bash aliases and functions that are used to set up a new repository with a single command, even if the project skeleton is not present on your system
  • Create Bash aliases that simplify the process of working with projects using your standard project skeleton
  • Automate the installation and updating of dependencies
  • Automate the process of downloading and installing dependencies outside of a package manager
  • Automate the setup of .bash_profile and .bashrc files on a new machine

At the end of this course, you will have scripts and custom shell commands that enable you to set up a new repository or new development machine. By doing this work just once, you’ll reap the benefits on every future project that you start.

Support

We’re here to help you if you get stuck! Our course is designed to be as comprehensive as possible, but also challenging. You can always ask questions or get help in the Course Support section of the forum, through private messages in the course interface, and also through private messages in the forum.

Prerequisites

This course assumes you have a basic knowledge of Git and the Bash shell.
This course also assumes that you have an existing project skeleton to work with. We provide a reference project skeleton as a backdrop of the course, but we do not discuss its design or setup process.

For guidance on building your own reusable project skeleton, we recommend the Meson or CMake version of Building a Reusable Project Skeleton.

No hardware is required for this course.

Getting Started

Scripting the Setup – CMake

Scripting the Setup – Meson

One-Touch Installation Commands

Installing Dependencies

Conclusion