Skip to content

Commit b5fa8a8

Browse files
author
Shreyas Nayak
committed
CI CD Script
1 parent 1e3a9bb commit b5fa8a8

21 files changed

Lines changed: 2803 additions & 2618 deletions

.devcontainer/devcontainer.json

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
{
2-
"name": "NodeJS-FAAS",
3-
"image": "docker.io/node:20-bookworm-slim",
4-
"customizations": {
5-
"vscode": {
6-
"settings": {},
7-
"extensions": [
8-
"42Crunch.vscode-openapi"
9-
]
10-
}
11-
},
12-
"portsAttributes": {
13-
"9256": {
14-
"label": "NodeJS-FAAS",
15-
"onAutoForward": "notify"
16-
}
17-
},
18-
"postCreateCommand": ""
1+
{
2+
"name": "NodeJS-FAAS",
3+
"image": "docker.io/node:20-bookworm-slim",
4+
"customizations": {
5+
"vscode": {
6+
"settings": {},
7+
"extensions": [
8+
"42Crunch.vscode-openapi"
9+
]
10+
}
11+
},
12+
"portsAttributes": {
13+
"9256": {
14+
"label": "NodeJS-FAAS",
15+
"onAutoForward": "notify"
16+
}
17+
},
18+
"postCreateCommand": ""
1919
}

.devcontainer/workflows/deploy.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Node.js CI/CD
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
9+
jobs:
10+
build-deploy:
11+
runs-on: node:20-bookworm-slim
12+
13+
steps:
14+
- name: Checkout Code
15+
uses: actions/checkout@v4
16+
17+
- name: Setup Node.js
18+
uses: actions/setup-node@v4
19+
with:
20+
node-version: 'v18.17.0'
21+
22+
- name: Install Dependencies
23+
run: npm install
24+
25+
- name: Run Build (optional)
26+
run: npm run build
27+
28+
- name: Run Tests (optional)
29+
run: npm test
30+
31+
Optional: Docker image build & push
32+
- name: Build Docker Image
33+
run: docker build -t shreyasnayak21/nodejs-faas:beta .
34+
35+
# - name: Push to DockerHub or GHCR
36+
# run: echo "push step here"
37+
38+
# Example Deploy: rsync to server (update credentials & IP)
39+
# - name: Deploy to Server
40+
# run: rsync -avz ./ user@your-server-ip:/opt/nodejs-faas/
41+
# env:
42+
# SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
node_modules
2-
uploads
1+
node_modules
2+
uploads
33
functions

Dockerfile

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
FROM node:20-bookworm-slim
2-
RUN mkdir -p /opt/app
3-
RUN mkdir -p /opt/app/functions
4-
WORKDIR /opt/app
5-
COPY openapi.json /opt/app/openapi.json
6-
COPY package.json /opt/app/package.json
7-
COPY package-lock.json /opt/app/package-lock.json
8-
RUN npm install
9-
COPY index.mjs /opt/app/
10-
EXPOSE 9256
1+
FROM node:20-bookworm-slim
2+
RUN mkdir -p /opt/app
3+
RUN mkdir -p /opt/app/storage/functions
4+
RUN mkdir -p /opt/app/storage/uploads
5+
WORKDIR /opt/app
6+
COPY openapi.json /opt/app/openapi.json
7+
COPY package.json /opt/app/package.json
8+
COPY package-lock.json /opt/app/package-lock.json
9+
RUN npm install
10+
COPY index.mjs /opt/app/
11+
EXPOSE 9256
1112
CMD [ "npm", "start"]

0 commit comments

Comments
 (0)