Skip to main content

Command Palette

Search for a command to run...

Day-86: DevOps Project 7: Automating Portfolio Deployment

Updated
2 min read
Day-86: DevOps Project 7: Automating Portfolio Deployment
V

"DevOps enthusiast and aspiring engineer. Currently honing skills in streamlining development workflows and automating infrastructure. Learning AWS, Docker, Kubernetes, Python, and Ansible. Eager to contribute and grow within the DevOps community."

TABLE OF CONTENTS

  • Project Overview

  • Necessary Preparations

  • Step-by-Step Project Execution

Project Overview

The core objective of this project is to automate the deployment of a Portfolio application onto AWS S3 using GitHub Actions. By leveraging GitHub Actions directly within the GitHub Repository, continuous integration and deployment (CI/CD) processes are seamlessly streamlined.

Necessary Preparations

  1. S3 Bucket Creation: Establish an S3 bucket to serve as the hosting environment for the portfolio application.

  2. IAM User Configuration: Set up an IAM user with the requisite permissions for interacting with the AWS S3 service.

Step-by-Step Project Execution

  1. Retrieve Portfolio Application from GitHub: Clone the Portfolio application from GitHub either locally or onto an AWS server for further processing.

  2. Configuration of GitHub Actions Workflow: Access the actions section within the GitHub repository and configure a new workflow for seamless integration.

     name: Portfolio-Deployment
    
     on:
       push:
         branches:
           - main
    
     jobs:
       build-and-deploy:
         runs-on: ubuntu-latest
         steps:
           - name: Checkout
             uses: actions/checkout@v1
    
           - name: Configure AWS Credentials
             uses: aws-actions/configure-aws-credentials@v1
             with:
               aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
               aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
               aws-region: ap-south-1
    
           - name: Deploy static site to S3 bucket
             run: aws s3 sync . s3://portfolio-vedant --delete
    

  3. AWS S3 Configuration for Hosting: Configure the S3 bucket for public access and enable static website hosting to serve the portfolio application.

  4. Adjust Bucket Permissions in S3: Ensure proper permissions are granted to the S3 bucket to facilitate smooth operation.

  5. Modify index.html File and Deploy Portfolio Website: Customize the index.html file to trigger the GitHub Actions workflow and update website content and title. Commit and push changes to the GitHub repository.

  6. Execute the GitHub Actions Workflow: Initiate the workflow execution within GitHub Actions for seamless deployment.

  7. Activate the Website: Upon successful completion of the workflow, the portfolio website will be live and accessible.

Thank you for exploring this article. Wishing you a fantastic day ahead!

More from this blog

Untitled Publication

96 posts