Skip to content

Commit

Permalink
changing yml file for server
Browse files Browse the repository at this point in the history
  • Loading branch information
Shadi38 committed Feb 13, 2024
1 parent 61d674c commit 68823dd
Show file tree
Hide file tree
Showing 13 changed files with 1,795 additions and 1,482 deletions.
Binary file modified .DS_Store
Binary file not shown.
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
client/node_modules
server/node_modules
node_modules
.env
10 changes: 10 additions & 0 deletions .github/workflows/front-end.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,13 @@ jobs:
aws-region: eu-north-1
- name: Deploy static site to S3 bucket
run: 'aws s3 sync ./client/build s3://fullstackprojectaws'
<<<<<<< HEAD
=======







>>>>>>> 1d0f65ee (creating yml file)
150 changes: 106 additions & 44 deletions .github/workflows/server.yml
Original file line number Diff line number Diff line change
@@ -1,44 +1,106 @@
name: Node.js CI/CD

on:
push:
branches: ["main"]

jobs:
build:
runs-on: self-hosted
strategy:
matrix:
node-version: [16.x]

steps:
- name: Checkout Code
uses: actions/checkout@v3

- name: Install Server Dependencies
id: install-dependencies
run: npm ci
working-directory: ./server
continue-on-error: false

- name: Create .env File
id: create-env-file
run: |
touch ./server/.env
echo "EC2_HOST=${{ secrets.EC2_HOST }}" >> ./server/.env
echo "EC2_SSH_KEY=${{ secrets.EC2_SSH_KEY }}" >> ./server/.env
echo "EC2_USERNAME=${{ secrets.EC2_USERNAME }}" >> ./server/.env
continue-on-error: false

- name: Run Tests
run: echo "No tests are available for this project."

- name: Start Server/Run Application
id: start-server
run: pm2 restart BackendAPI
working-directory: ./server
continue-on-error: false

- name: Handle Errors
if: steps.install-dependencies.outcome != 'success' || steps.create-env-file.outcome != 'success' || steps.start-server.outcome != 'success'
run: echo "::set-output name=workflow-error::true"

name: Build on DockerHub and Deploy to AWS
on:
push:
branches:
- main
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
AWS_PRIVATE_KEY: ${{ AWS_SECRET_ACCESS_KEY }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push Docker image
uses: docker/build-push-action@v2
with:
context: ./
push: true
dockerfile: ./Dockerfile
tags: shadi38/node-app:4.0
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ env.DOCKERHUB_USERNAME }}
password: ${{ env.DOCKERHUB_TOKEN }}
- name: Set permissions for private key
run: |
echo "${{ env.EC2_SSH_KEY }}" > key.pem
chmod 600 key.pem
- name: Pull Docker image
run: |
ssh -o StrictHostKeyChecking=no -i key.pem [email protected] 'sudo docker pull shadi38/node-app:4.0'
- name: Stop running container
run: |
ssh -o StrictHostKeyChecking=no -i key.pem [email protected] 'sudo docker stop node-app:4.0 || true'
ssh -o StrictHostKeyChecking=no -i key.pem [email protected] 'sudo docker rm node-app:4.0 || true'
- name: Run new container
run: |
ssh -o StrictHostKeyChecking=no -i key.pem [email protected] 'sudo docker run -d --name node-app -p 80:3000 shadi38/node-app:4.0'
# name: Node.js CI/CD
# on:
# push:
# branches: ["main"]
# jobs:
# build:
# runs-on: self-hosted
# strategy:
# matrix:
# node-version: [16.x]
# steps:
# - name: Checkout Code
# uses: actions/checkout@v3
# - name: Install Server Dependencies
# id: install-dependencies
# run: npm ci
# working-directory: ./server
# continue-on-error: false
# - name: Create .env File
# id: create-env-file
# run: |
# touch ./server/.env
# echo "EC2_HOST=${{ secrets.EC2_HOST }}" >> ./server/.env
# echo "EC2_SSH_KEY=${{ secrets.EC2_SSH_KEY }}" >> ./server/.env
# echo "EC2_USERNAME=${{ secrets.EC2_USERNAME }}" >> ./server/.env
# continue-on-error: false
# - name: Run Tests
# run: echo "No tests are available for this project."
# - name: Start Server/Run Application
# id: start-server
# run: pm2 restart BackendAPI
# working-directory: ./server
# continue-on-error: false
# - name: Handle Errors
# if: steps.install-dependencies.outcome != 'success' || steps.create-env-file.outcome != 'success' || steps.start-server.outcome != 'success'
# run: echo "::set-output name=workflow-error::true"






10 changes: 10 additions & 0 deletions Docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version: '3'

services:
app:
image: shadi38/node-app:4.0
container_name: infallible_shirley
restart: always
ports:
- "3000:3000"

7 changes: 7 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM node:18-alpine
WORKDIR /app/server
COPY package*.json ./

RUN npm install
COPY /server .
CMD ["node","server.js"]
7 changes: 1 addition & 6 deletions client/src/Videos.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,7 @@ function Videos(props) {
const [title, setTitleData] = useState("");
const [url, setUrlData] = useState("");

// fetch("http://localhost:3000/videos")
// .then((response) => response.json())
// .then((data) => {
// return setLoadData(data);
// });



function cancelBtnHandler(e) {
props.setShow(false);
Expand Down
62 changes: 0 additions & 62 deletions exampleresponse.json

This file was deleted.

Loading

0 comments on commit 68823dd

Please sign in to comment.