Set Up an Infrastructure CI/CD Pipeline
caution
This guide hasn’t been updated in the past 6 months. If you find any inaccuracies, please share with us at feedback@gruntwork.io.
Overview
This is a comprehensive guide of how to design, configure, and implement a Continuous Integration and Continuous Delivery pipeline for your infrastructure code. This guide will walk you through the steps to set up a secure CI/CD pipeline for your favorite infrastructure as code tools (e.g., Terraform) using your favorite CI/CD platform (e.g., Jenkins, Circle, GitLab, etc).
TLDR: If you follow this guide, you’ll be able to set up a pipeline that works like this:

Sections
Feel free to read this guide from start to finish or skip around to whatever sections interest you.
1
Core Concepts
An overview of the core concepts you need to understand what a typical CI/CD pipeline entails for infrastructure code, including a comparison with CI/CD for application code, a sample workflow, infrastructure to support CI/CD, and threat models to consider to protect your infrastructure.
2
Production-grade Design
An overview of how to configure a secure, scalable, and robust CI/CD workflow that you can rely on for your production application and infrastructure code.
3
Deployment Walkthrough
A step-by-step guide to deploying a production-grade CI/CD pipeline in AWS using code from the Gruntwork Infrastructure as Code Library.
4
Next Steps
What to do once you’ve got your CI/CD pipeline set up.