Chapter 4. How to Version, Build, and Test Your Code
In Chapter 2, you learned how to manage your infrastructure, and in Chapter 3, you learned how to manage your apps. Along the way, you wrote code by using a variety of tools, including Node.js, Kubernetes, and OpenTofu. What did you do with all that code? Is it just sitting on your computer? If so, that’s fine for learning, when you’re the only one touching that code, but most software development is a team sport, and that means you need to figure out how to solve the following problems:
- Code access
-
All the developers on your team need a way to access the same code, and as they make changes to it, you need a way to merge their changes together.
- Automation
-
To save time and ensure consistency across your team, you need a way to automate common operations such as downloading dependencies, building the code, and packaging the code.
- Correctness
-
It’s hard enough to make your own code work, but when multiple people are modifying it, you need to find a way to prevent a stream of bugs.
To solve these problems, modern companies use the following tools:
-
Version control
-
Build system
-
Automated testing
This chapter dives into each of these tools. You’ll go through examples of storing code in Git and GitHub, using npm to manage your build and dependencies, and writing automated tests for your Node.js and OpenTofu code. Let’s get started with version control.
Version Control
A version-control system (VCS) is a tool that allows ...