From 19785aa3ace553154a1cfaa6cddff1ac9b64bd2d Mon Sep 17 00:00:00 2001 From: Dusky88 <118871578+Dusky88@users.noreply.github.com> Date: Fri, 2 Jan 2026 10:48:46 +0545 Subject: [PATCH 01/15] Update index.ts --- src/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/index.ts b/src/index.ts index 71ad74c..decc777 100755 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,4 @@ -import express from "express"; +import express from "express" import cors from "cors"; import body from "body-parser"; @@ -44,4 +44,4 @@ function stop() { export { server, startServer, stop }; -startServer(); \ No newline at end of file +startServer(); From b87b5643b5d86f34e0363adb61f610c5aee9c664 Mon Sep 17 00:00:00 2001 From: Dusky88 <118871578+Dusky88@users.noreply.github.com> Date: Fri, 2 Jan 2026 11:00:01 +0545 Subject: [PATCH 02/15] Create test.yml --- src/.github/workflows/test.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/.github/workflows/test.yml diff --git a/src/.github/workflows/test.yml b/src/.github/workflows/test.yml new file mode 100644 index 0000000..8509a89 --- /dev/null +++ b/src/.github/workflows/test.yml @@ -0,0 +1,19 @@ +name: Test Project + +on: + pull_request: + branches: + - main + +jobs: + test: + runs-on: ubuntu-latest + container: + image: node:20 + steps: + - uses: actions/checkout@v3 + with: + node-version: 20 + - run: npm ci + - run: npm test + - run: npm run build From eff3f9905d98dac17ad32b7dfe4beec8f1a53ae7 Mon Sep 17 00:00:00 2001 From: Dusky88 Date: Tue, 6 Jan 2026 05:23:49 +0000 Subject: [PATCH 03/15] added testbranch ann exec file --- .github/workflows/exec.yml | 67 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/exec.yml diff --git a/.github/workflows/exec.yml b/.github/workflows/exec.yml new file mode 100644 index 0000000..2826110 --- /dev/null +++ b/.github/workflows/exec.yml @@ -0,0 +1,67 @@ +name: Build and Deploy + +on: + push: + branches: + - main # Ensure this is a list (with a dash) + +jobs: + build-and-test: + runs-on: ubuntu-latest + + steps: + # 1. Checkout code + - name: Checkout code + uses: actions/checkout@v3 + + # 2. Install dependencies + - name: Install dependencies + run: npm ci + + # 3. Run tests + - name: Run tests + run: npm test + + # 4. Build project + - name: Build project + run: npm run build + + # 5. Package dist folder + - name: Package dist folder + run: tar -czf dist.tar.gz dist + + # 6. Upload artifact for deployment + - name: Upload build artifact + uses: actions/upload-artifact@v4 + with: + name: dist + path: dist.tar.gz + + deploy: + needs: build-and-test + runs-on: ubuntu-latest + + steps: + # 1. Download build artifact + - name: Download build artifact + uses: actions/download-artifact@v4 + with: + name: dist + + # 2. Set up SSH + - name: Set up SSH + uses: webfactory/ssh-agent@v0.7.1 + with: + ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} + + # 3. Upload build to Azure VM + - name: Upload build to server + run: scp dist.tar.gz ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }}:${{ secrets.SERVER_PATH }} + + # 4. Extract build on Azure VM + - name: Extract build on server + run: | + ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} " + cd ${{ secrets.SERVER_PATH }} && \ + tar -xzf dist.tar.gz && \ + rm dist.tar.gz" From de53fff06f888598441d416a1984def333055f52 Mon Sep 17 00:00:00 2001 From: Dusky88 Date: Tue, 6 Jan 2026 05:40:46 +0000 Subject: [PATCH 04/15] changed the deploy version for webfatory ssh --- .github/workflows/exec.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/exec.yml b/.github/workflows/exec.yml index 2826110..0931f00 100644 --- a/.github/workflows/exec.yml +++ b/.github/workflows/exec.yml @@ -50,7 +50,7 @@ jobs: # 2. Set up SSH - name: Set up SSH - uses: webfactory/ssh-agent@v0.7.1 + uses: webfactory/ssh-agent@v0.9.0 with: ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} From 938fee66e7a42542231c1f6551a299a9585fed52 Mon Sep 17 00:00:00 2001 From: Dusky88 Date: Tue, 6 Jan 2026 06:05:15 +0000 Subject: [PATCH 05/15] readme changes --- readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index ac83b3a..7eae848 100755 --- a/readme.md +++ b/readme.md @@ -9,7 +9,7 @@ Github Actions is a CI/CD tool that allows you to automate your workflow. It is ## Steps 2. Create a new file in the `.github/workflows` directory -3. Define the workflow +3. Define the workflows 4. Push the changes to the repository 5. Check the Actions tab in the repository @@ -35,4 +35,4 @@ jobs: - run: npm test - run: npm run build -``` \ No newline at end of file +``` From 559c7247dcfcb7f2720033fe460ff07ac52098a7 Mon Sep 17 00:00:00 2001 From: Dusky88 Date: Tue, 6 Jan 2026 06:33:45 +0000 Subject: [PATCH 06/15] Add ssh-keyscan step to fix host key verification --- .github/workflows/exec.yml | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/.github/workflows/exec.yml b/.github/workflows/exec.yml index 0931f00..9841ebd 100644 --- a/.github/workflows/exec.yml +++ b/.github/workflows/exec.yml @@ -1,64 +1,56 @@ name: Build and Deploy - on: push: branches: - main # Ensure this is a list (with a dash) - jobs: build-and-test: runs-on: ubuntu-latest - steps: # 1. Checkout code - name: Checkout code uses: actions/checkout@v3 - # 2. Install dependencies - name: Install dependencies run: npm ci - # 3. Run tests - name: Run tests run: npm test - # 4. Build project - name: Build project run: npm run build - # 5. Package dist folder - name: Package dist folder run: tar -czf dist.tar.gz dist - # 6. Upload artifact for deployment - name: Upload build artifact uses: actions/upload-artifact@v4 with: name: dist path: dist.tar.gz - deploy: needs: build-and-test runs-on: ubuntu-latest - steps: # 1. Download build artifact - name: Download build artifact uses: actions/download-artifact@v4 with: name: dist - # 2. Set up SSH - name: Set up SSH uses: webfactory/ssh-agent@v0.9.0 with: ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} - - # 3. Upload build to Azure VM + # 3. Add server to known hosts (ADDED THIS STEP!) + - name: Add server to known hosts + run: | + mkdir -p ~/.ssh + ssh-keyscan -H ${{ secrets.SERVER_HOST }} >> ~/.ssh/known_hosts + # 4. Upload build to EC2 - name: Upload build to server run: scp dist.tar.gz ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }}:${{ secrets.SERVER_PATH }} - - # 4. Extract build on Azure VM + # 5. Extract build on EC2 - name: Extract build on server run: | ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} " From c9d29e63776b3a3e921cf002614595580d6b3d68 Mon Sep 17 00:00:00 2001 From: Dusky88 Date: Tue, 6 Jan 2026 06:37:20 +0000 Subject: [PATCH 07/15] Add ssh syntaxes --- .github/workflows/exec.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/exec.yml b/.github/workflows/exec.yml index 9841ebd..f767c21 100644 --- a/.github/workflows/exec.yml +++ b/.github/workflows/exec.yml @@ -53,7 +53,4 @@ jobs: # 5. Extract build on EC2 - name: Extract build on server run: | - ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} " - cd ${{ secrets.SERVER_PATH }} && \ - tar -xzf dist.tar.gz && \ - rm dist.tar.gz" + ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} "cd ${{ secrets.SERVER_PATH }} && tar -xzf dist.tar.gz && rm dist.tar.gz" From 7f05976cc75138967e48708d096f847782f156c0 Mon Sep 17 00:00:00 2001 From: Dusky88 Date: Tue, 6 Jan 2026 06:41:03 +0000 Subject: [PATCH 08/15] removed multiline syntaxes and ignore dist.tar.gz --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index c6bba59..af68306 100644 --- a/.gitignore +++ b/.gitignore @@ -128,3 +128,4 @@ dist .yarn/build-state.yml .yarn/install-state.gz .pnp.* +dist.tar.gz From d63918718c156a48400c0947e308a158f8f51d94 Mon Sep 17 00:00:00 2001 From: Dusky88 Date: Tue, 6 Jan 2026 07:12:27 +0000 Subject: [PATCH 09/15] removed multiline syntaxes again --- .github/workflows/exec.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/exec.yml b/.github/workflows/exec.yml index f767c21..5c788ca 100644 --- a/.github/workflows/exec.yml +++ b/.github/workflows/exec.yml @@ -52,5 +52,5 @@ jobs: run: scp dist.tar.gz ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }}:${{ secrets.SERVER_PATH }} # 5. Extract build on EC2 - name: Extract build on server - run: | + run: ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} "cd ${{ secrets.SERVER_PATH }} && tar -xzf dist.tar.gz && rm dist.tar.gz" From b2d58297ce868513285778c6c7fa8d688690efb0 Mon Sep 17 00:00:00 2001 From: Dusky88 Date: Tue, 6 Jan 2026 07:16:24 +0000 Subject: [PATCH 10/15] made changes to indentations --- .github/workflows/exec.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/exec.yml b/.github/workflows/exec.yml index 5c788ca..6091f34 100644 --- a/.github/workflows/exec.yml +++ b/.github/workflows/exec.yml @@ -52,5 +52,4 @@ jobs: run: scp dist.tar.gz ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }}:${{ secrets.SERVER_PATH }} # 5. Extract build on EC2 - name: Extract build on server - run: - ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} "cd ${{ secrets.SERVER_PATH }} && tar -xzf dist.tar.gz && rm dist.tar.gz" + run: ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} 'cd ${{ secrets.SERVER_PATH }}; tar -xzf dist.tar.gz; rm dist.tar.gz' From 8f69c2ba03d31fc0203eed5cf4aea1c452f1436d Mon Sep 17 00:00:00 2001 From: Dusky88 Date: Tue, 6 Jan 2026 07:19:47 +0000 Subject: [PATCH 11/15] removed semicolon --- .github/workflows/exec.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/exec.yml b/.github/workflows/exec.yml index 6091f34..74c1a0e 100644 --- a/.github/workflows/exec.yml +++ b/.github/workflows/exec.yml @@ -52,4 +52,5 @@ jobs: run: scp dist.tar.gz ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }}:${{ secrets.SERVER_PATH }} # 5. Extract build on EC2 - name: Extract build on server - run: ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} 'cd ${{ secrets.SERVER_PATH }}; tar -xzf dist.tar.gz; rm dist.tar.gz' + run: ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} 'cd ${{ secrets.SERVER_PATH }} && tar -xzf dist.tar.gz && rm dist.tar.gz' + From 1aa847211a76fb2513fe020a4946821676d65e06 Mon Sep 17 00:00:00 2001 From: Dusky88 Date: Tue, 6 Jan 2026 07:24:39 +0000 Subject: [PATCH 12/15] made 2 ssh lines --- .github/workflows/exec.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/exec.yml b/.github/workflows/exec.yml index 74c1a0e..e6b4781 100644 --- a/.github/workflows/exec.yml +++ b/.github/workflows/exec.yml @@ -50,7 +50,8 @@ jobs: # 4. Upload build to EC2 - name: Upload build to server run: scp dist.tar.gz ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }}:${{ secrets.SERVER_PATH }} - # 5. Extract build on EC2 + # 5. Extract build on EC2 - name: Extract build on server - run: ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} 'cd ${{ secrets.SERVER_PATH }} && tar -xzf dist.tar.gz && rm dist.tar.gz' - + run: | + ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} 'tar -xzf ${{ secrets.SERVER_PATH }}/dist.tar.gz -C ${{ secrets.SERVER_PATH }}' + ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} 'rm ${{ secrets.SERVER_PATH }}/dist.tar.gz' From cb3600b3bbac23d26a0d2e30c22c7ce5b7598d46 Mon Sep 17 00:00:00 2001 From: Dusky88 Date: Tue, 6 Jan 2026 07:29:45 +0000 Subject: [PATCH 13/15] fix path issues --- .github/workflows/exec.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/exec.yml b/.github/workflows/exec.yml index e6b4781..6b6ee94 100644 --- a/.github/workflows/exec.yml +++ b/.github/workflows/exec.yml @@ -50,8 +50,7 @@ jobs: # 4. Upload build to EC2 - name: Upload build to server run: scp dist.tar.gz ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }}:${{ secrets.SERVER_PATH }} - # 5. Extract build on EC2 + # 5. Extract build on EC2 - name: Extract build on server run: | - ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} 'tar -xzf ${{ secrets.SERVER_PATH }}/dist.tar.gz -C ${{ secrets.SERVER_PATH }}' - ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} 'rm ${{ secrets.SERVER_PATH }}/dist.tar.gz' + ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} 'cd ${{ secrets.SERVER_PATH }} && tar -xzf dist.tar.gz && rm dist.tar.gz' From 1f404642fce29bf8f59601d76797b3d40f77c948 Mon Sep 17 00:00:00 2001 From: Dusky88 <118871578+Dusky88@users.noreply.github.com> Date: Tue, 6 Jan 2026 14:08:01 +0545 Subject: [PATCH 14/15] Update exec.yml --- .github/workflows/exec.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/exec.yml b/.github/workflows/exec.yml index 6b6ee94..bcae7bc 100644 --- a/.github/workflows/exec.yml +++ b/.github/workflows/exec.yml @@ -53,4 +53,8 @@ jobs: # 5. Extract build on EC2 - name: Extract build on server run: | - ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} 'cd ${{ secrets.SERVER_PATH }} && tar -xzf dist.tar.gz && rm dist.tar.gz' + ssh "${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }}" << 'EOF' + cd "${{ secrets.SERVER_PATH }}" + tar -xzf dist.tar.gz + rm dist.tar.gz + EOF From 1235454021d1942f0169fe9842ea08dda1f246cf Mon Sep 17 00:00:00 2001 From: Dusky88 <118871578+Dusky88@users.noreply.github.com> Date: Tue, 6 Jan 2026 14:12:30 +0545 Subject: [PATCH 15/15] Update exec.yml --- .github/workflows/exec.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/exec.yml b/.github/workflows/exec.yml index bcae7bc..aeb9199 100644 --- a/.github/workflows/exec.yml +++ b/.github/workflows/exec.yml @@ -54,7 +54,7 @@ jobs: - name: Extract build on server run: | ssh "${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }}" << 'EOF' - cd "${{ secrets.SERVER_PATH }}" + cd /home/ubuntu/myapp tar -xzf dist.tar.gz rm dist.tar.gz EOF