DEV Community

Cover image for CI/CD with GitHub Actions: Automating Deployments Like a Pro
Mansi Gawade
Mansi Gawade

Posted on

CI/CD with GitHub Actions: Automating Deployments Like a Pro

Introduction
Continuous Integration and Continuous Deployment (CI/CD) streamline software delivery by automating builds, tests, and deployments. GitHub Actions provides a flexible CI/CD workflow within GitHub repositories.

What is GitHub Actions?
GitHub Actions is a workflow automation tool that allows you to define CI/CD pipelines using YAML files.

Setting Up a CI/CD Pipeline

Step 1: Create a GitHub Repository
Initialize a GitHub repository and push your code.

Step 2: Define Workflow in .github/workflows/deploy.yml
Create a YAML file with the following structure:
`name: Deploy to AWS

on:
push:
branches:
- main

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3

  - name: Setup Node.js
    uses: actions/setup-node@v3
    with:
      node-version: '18'

  - name: Install Dependencies
    run: npm install

  - name: Run Tests
    run: npm test

  - name: Deploy to AWS
    run: aws s3 sync ./build s3://your-bucket-name`
Enter fullscreen mode Exit fullscreen mode

Step 3: Secure Secrets Using GitHub Secrets
Store AWS credentials securely using Settings > Secrets.
Advanced CI/CD Features
Caching Dependencies – Reduce build time using:
- name: Cache Dependencies
uses: actions/cache@v3
with:
path: ~/.npm
key: npm-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}

Rollback Mechanism – Automate rollbacks on failed deployments.
Notifications – Send Slack alerts on deployment status.

Conclusion
GitHub Actions makes CI/CD simple and scalable. By integrating best practices, you can automate deployments while ensuring security and efficiency.

Top comments (0)