Skip to content

deploy

deploy #45

Workflow file for this run

name: Deploy Node.js Application
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Source
uses: actions/checkout@v4
- name: Login to Docker Hub
run: docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
- name: Build Docker Image
run: docker build -t ${{ secrets.DOCKER_USERNAME }}/backend-app -f backend/Dockerfile backend/
- name: Publish Image to Docker Hub
run: docker push oyshisarker/backend-app:latest
deploy:
needs: build
runs-on: self-hosted
steps:
- name: Pull Image from Docker Hub
run: docker pull oyshisarker/backend-app:latest
- name: List Docker Images
run: docker images
- name: Remove existing container if it exists
run: |
docker stop backend-app-container || true
docker rm backend-app-container || true
- name: Run Docker Container
run: |
docker run -d -p 5000:5000 \
--name backend-app-container \
-e MONGODB_URL="${{ secrets.MONGO_URL }}" \
-e OPEN_AI_SECRET="${{ secrets.OPEN_AI_SECRET }}" \
-e JWT_SECRET="${{ secrets.JWT_SECRET }}" \
-e COOKIE_SECRET="${{ secrets.COOKIE_SECRET }}" \
-e OPENAI_ORGANIZATION_ID="${{ secrets.OPENAI_ORGANIZATION_ID }}" \
-e COOKIE_NAME="${{secrets.COOKIE_NAME}}" \
-e PORT="${{secrets.PORT}}" \
oyshisarker/backend-app:latest