Skip to content

build & deploy to AWS #17

build & deploy to AWS

build & deploy to AWS #17

Workflow file for this run

name: Deployment on AWS-EC2 Linux
on:
push:
branches:
- production
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Source
uses: actions/checkout@v4
- name: Create .env file
run: rm -rf .env && echo echo "NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=\${{ secrets.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY }}\nCLERK_SECRET_KEY=\${{ secrets.CLERK_SECRET_KEY }}\nNEXT_PUBLIC_CLERK_SIGN_IN_URL=\${{ secrets.NEXT_PUBLIC_CLERK_SIGN_IN_URL }}\nNEXT_PUBLIC_CLERK_SIGN_UP_URL=\${{ secrets.NEXT_PUBLIC_CLERK_SIGN_UP_URL }}\nNEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=\${{ secrets.NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL }}\nNEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=\${{ secrets.NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL }}\nDATABASE_URL=\${{ secrets.DATABASE_URL }}\nUPLOADTHING_SECRET=\${{ secrets.UPLOADTHING_SECRET }}\nUPLOADTHING_APP_ID=\${{ secrets.UPLOADTHING_APP_ID }}\nLIVEKIT_API_KEY=\${{ secrets.LIVEKIT_API_KEY }}\nLIVEKIT_API_SECRET=\${{ secrets.LIVEKIT_API_SECRET }}\nNEXT_PUBLIC_LIVEKIT_URL=\${{ secrets.NEXT_PUBLIC_LIVEKIT_URL }}" >> .env
- name: Build docker image
run: docker build -t ravindramohith/discord_clone .
- name: Login to DockerHub
run: docker login -u ${{ secrets.DOCKER_USR }} -p ${{ secrets.DOCKER_PSWD }}
- name: Publish docker Image to Hub
run: docker push ravindramohith/discord_clone:latest
deploy:
needs: build
runs-on: self-hosted
steps:
- name: Pull image from Docker Hub
run: docker pull ravindramohith/discord_clone:latest
- name: Remove Existing Container
run: docker rm -f discord-clone-container
- name: Run Docker Container
run: docker run -d -p 3000:3000 --name discord-clone-container ravindramohith/discord_clone:latest