Setting Up an End-to-End CI/CD Pipeline with GitHub Actions Locally - Step-by-Step

Setup CI/CD Pipeline Locally with GitHub Actions - Step-by-Step

Continuous Integration and Continuous Deployment (CI/CD) pipelines are essential for modern software development, allowing teams to automate testing, building, and deploying applications efficiently. GitHub Actions provides a robust way to implement CI/CD workflows, even locally, without relying on external servers. In this guide, we will explore how to set up a fully functional CI/CD pipeline locally using GitHub Actions Runner.

What We Will Cover:

✅ Install and configure GitHub Actions Runner
✅ Automate build, test, and deploy processes
✅ Run CI/CD pipelines without external servers


1. Installing and Configuring GitHub Actions Runner

1.1 Prerequisites

Before getting started, ensure you have:

  • A GitHub account
  • A local development environment (Windows, macOS, or Linux)
  • Docker installed (optional for containerized workflows)

1.2 Installing GitHub Actions Runner

Create a directory for the runner:

mkdir actions-runner && cd actions-runner

Download the latest runner binary:

curl -o actions-runner-linux-x64.tar.gz -L https://github.com/actions/runner/releases/latest/download/actions-runner-linux-x64.tar.gz

Extract the package:

tar xzf actions-runner-linux-x64.tar.gz

1.3 Configuring the Runner

Register the runner with your GitHub repository:

./config.sh --url https://github.com/your-repo --token YOUR_ACCESS_TOKEN

Start the runner:

./run.sh

Your GitHub Actions Runner is now configured locally!


2. Automating Build, Test, and Deploy Processes

2.1 Creating a Basic GitHub Actions Workflow

Navigate to your project repository and create a workflow directory:

mkdir -p .github/workflows

Create a new workflow file (ci-cd-pipeline.yml):

name: Local CI/CD Pipeline
on: [push, pull_request]

jobs:
  build:
    runs-on: self-hosted
    steps:
      - name: Checkout Code
        uses: actions/checkout@v2
      - name: Install Dependencies
        run: npm install
      - name: Run Tests
        run: npm test
  deploy:
    needs: build
    runs-on: self-hosted
    steps:
      - name: Deploy Application
        run: echo "Deploying application..."

Commit and push this file to trigger the pipeline.

2.2 Running Tests Automatically

Modify the test step to include various testing frameworks:

- name: Run Unit Tests
  run: npm run test:unit
- name: Run Integration Tests
  run: npm run test:integration

2.3 Deploying Locally

Use scripts to automate deployment:

- name: Deploy to Local Server
  run: ./deploy.sh

Ensure deploy.sh contains:

#!/bin/bash
echo "Starting deployment..."
docker-compose up -d

3. Running CI/CD Pipelines Without External Servers

3.1 Running GitHub Actions Locally

To run GitHub Actions locally, install the act tool:

brew install act  # macOS
scoop install act # Windows

Run the pipeline:

act -j build

3.2 Monitoring Pipelines

Monitor workflows directly from the GitHub repository under Actions.

3.3 Troubleshooting

Check the runner logs for errors:

tail -f _diag/Runner.log

Conclusion

In this guide, we covered:

✅ Installing and configuring GitHub Actions Runner
✅ Automating build, test, and deploy processes
✅ Running CI/CD pipelines without external servers

By setting up GitHub Actions locally, you can streamline your development workflow while maintaining control over your infrastructure. 🚀

Sandip Mhaske

I’m a software developer exploring the depths of .NET, AWS, Angular, React, and digital entrepreneurship. Here, I decode complex problems, share insightful solutions, and navigate the evolving landscape of tech and finance.

Post a Comment

Previous Post Next Post