Building CI/CD Workflows
Create practical CI/CD pipelines to automatically build, test, and deploy your code upon pushes or pull requests.
Building CI/CD Workflows is a free DevOps Bootcamp lesson on CoddyKit. This is lesson 2 of 4. Any 3 lessons of this learning path are free to read in full — after that, CoddyKit PRO unlocks every lesson, plus hands-on practice with a built-in code editor and a 24/7 AI tutor. It is part of the DevOps Bootcamp learning path, and your progress syncs across the web and the CoddyKit app. The DevOps Bootcamp course includes 4 lessons in total.
Welcome to CI/CD
In this lesson, you'll learn to build powerful Continuous Integration (CI) and Continuous Deployment (CD) pipelines using GitHub Actions.
CI/CD automates your software development process, from code changes to deployment, making it faster and more reliable.
Why CI/CD Matters
Why is automation so crucial in modern software development?
- Faster Feedback: Catch bugs and integration issues early by running tests automatically.
- Consistent Builds: Ensure every build follows the same steps, reducing 'it works on my machine' problems.
- Reliable Releases: Deploy new features or fixes with confidence and less manual error.
- Improved Collaboration: Teams integrate changes frequently and seamlessly, minimizing merge conflicts.
GitHub Actions: Core Concepts
GitHub Actions uses workflows defined in YAML files. These files live in a special directory in your repository: .github/workflows/.
A workflow defines a series of jobs, and each job contains steps that execute commands or use pre-built actions. This is how you tell GitHub what to do!
Building Your First CI Workflow
Let's create a basic CI workflow that triggers on every push to your repository. It will set up Node.js and simulate a project build process.
Save this content as .github/workflows/ci.yml in your repository:
name: Node.js CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install dependencies
run: npm install
- name: Build project
run: node build.jsSimulating the Build Script
The node build.js command in the workflow would execute a script like this. This script simulates the work of compiling, bundling, or preparing your application's code.
Try running it to see the output:
console.log("Starting project build...");
console.log(" - Compiling source files...");
console.log(" - Bundling assets for deployment...");
console.log("Build process finished successfully!");Adding Automated Tests
A crucial part of CI is running automated tests. Let's extend our workflow to include a test step after installing dependencies. If tests fail, the workflow fails, preventing bad code from progressing!
We'll add a test step like this:
name: Node.js CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install dependencies
run: npm install
- name: Run tests
run: node test.js
- name: Build project
run: node build.jsSimulating the Test Script
Here's a simple test.js script that your workflow might execute. In a real project, this would involve test frameworks like Jest or Mocha, but this demonstrates the principle of executing tests.
Run it to see a simulated test result:
console.log("Running automated tests...");
const allTestsPass = Math.random() > 0.1; // Simulate 90% chance of passing
if (allTestsPass) {
console.log("All 12 tests passed successfully!");
} else {
console.error("Tests failed! Please fix the errors.");
process.exit(1); // Exit with a non-zero code to indicate failure
}Introducing Continuous Deployment (CD)
While CI focuses on building and testing, Continuous Deployment (CD) goes a step further by automatically deploying your application to a server or cloud service once all CI checks pass.
Common CD triggers include:
- Creating a new Git tag (e.g.,
v1.0.0) - Pushing to a specific branch (e.g.,
mainorproduction) - Creating a GitHub Release
A Simple CD Workflow
Here's a workflow that triggers on a new Git tag and includes a mock deployment step. In a real scenario, this step would interact with your hosting provider (e.g., AWS, Azure, Heroku).
Save this as .github/workflows/cd.yml:
name: Deploy to Production
on:
push:
tags:
- 'v*.*.*' # Triggers on tags like v1.0.0, v1.2.3
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Simulate deployment
run: |
echo "Deploying application to production server..."
echo "Version: ${{ github.ref_name }}"
echo "Deployment complete!"
# In a real scenario, you'd use a deployment action here
# e.g., aws-actions/configure-aws-credentials, appleboy/ssh-actionCI/CD Workflow Check
Which of the following are key benefits of implementing CI/CD pipelines?
Recap: Building CI/CD
You've learned how to build robust CI/CD workflows with GitHub Actions!
- We defined CI/CD and its benefits for modern development.
- We explored the essential GitHub Actions workflow YAML structure.
- We created CI workflows for automating project builds and tests.
- We designed a CD workflow for automated deployments triggered by tags.
Keep automating to ship code faster and with more confidence!
Learn DevOps Bootcamp with an AI tutor — free
Write and run real code in your browser, get instant help from a 24/7 AI tutor, and pick up where you left off on the web or in the app.
- Courses
- 142
- Lessons
- 568
Frequently Asked Questions
Is the “Building CI/CD Workflows” lesson free?
Yes — any 3 lessons of the DevOps Bootcamp learning path, including “Building CI/CD Workflows”, are free to read in full here on the web. After that, CoddyKit PRO unlocks every lesson, plus interactive practice with a built-in code editor and a 24/7 AI tutor. The DevOps Bootcamp course includes 4 lessons in total.
What will I learn in “Building CI/CD Workflows”?
Create practical CI/CD pipelines to automatically build, test, and deploy your code upon pushes or pull requests. You practise DevOps Bootcamp with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start DevOps Bootcamp?
No prior experience is required. DevOps Bootcamp on CoddyKit is structured for beginners through advanced learners, so you can start here or from the beginning and move at your own pace. This is lesson 2 of 4.
How long does the “Building CI/CD Workflows” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this DevOps Bootcamp lesson?
Yes. Every DevOps Bootcamp lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Introduction to GitHub Actions
- Building CI/CD Workflows
- Custom Actions & Marketplace
- Secrets and Environment Variables in Actions