Skip to content

created github workflow #459

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ jobs:
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
node-version: "20"

- name: Install Dependencies
run: npm install
- name: Generate prisma client
run: npm run db:generate

- name: Initiate Prisma client
run: cd packages/db/ && npx prisma generate && cd .. && cd ..

- name: Run Build
run: npm run build
50 changes: 20 additions & 30 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
name: Build and Deploy to Docker Hub
# For CD pipeline make sure you have created token on docker and added it to the github secrets otherwise it won't be successfull

name: Build and Deploy to DockerHub

on:
push:
Expand All @@ -9,34 +11,22 @@ jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Check Out Repo
uses: actions/checkout@v2

- name: Log in to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Build and Push Docker image
uses: docker/build-push-action@v2
with:
context: .
file: ./docker/Dockerfile.user
push: true
tags: 100xdevs/week-18-class:latest # Replace with your Docker Hub username and repository
- name: Checkout the repo
uses: actions/checkout@v4

- name: Verify Pushed Image
run: docker pull 100xdevs/week-18-class:latest # Replace with your Docker Hub username and repository
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
file: ./docker/Dockerfile.user
push: true
tags: omwadhi64/user-merchant-app

- name: Deploy to EC2
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_KEY }}
script: |
sudo docker pull 100xdevs/week-18-class:latest
sudo docker stop web-app || true
sudo docker rm web-app || true
sudo docker run -d --name web-app -p 3005:3000 100xdevs/week-18-class:latest
- name: Verify and Push
run: docker pull omwadhi64/user-merchant-app # this needs to be run since we are running a cli command. If it was a path that need to be mentioned then we had to use "uses" instead of "run"
4 changes: 2 additions & 2 deletions apps/user-app/app/(dashboard)/transfer/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,15 @@ async function getOnRampTransactions() {
userId: Number(session?.user?.id)
}
});
return txns.map(t => ({
return txns.map((t: any) => ({
time: t.startTime,
amount: t.amount,
status: t.status,
provider: t.provider
}))
}

export default async function() {
export default async function () {
const balance = await getBalance();
const transactions = await getOnRampTransactions();

Expand Down
19 changes: 8 additions & 11 deletions docker/Dockerfile.user
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
FROM node:20.12.0-alpine3.19
FROM node:20-alpine3.19

WORKDIR /usr/src/app

COPY package.json package-lock.json turbo.json tsconfig.json ./
COPY package.json package-lock.json tsconfig.json turbo.json ./

COPY apps ./apps
COPY packages ./packages
# we are first copying this over to /app becuase this is a monorepo and each of the folder has its own package.json
COPY ./apps ./apps
COPY ./packages ./packages

# Install dependencies
RUN npm install
# Can you add a script to the global package.json that does this?
RUN npm run db:generate

# Can you filter the build down to just one app?
# RUN cd packages/db && npx prisma generate && cd ../.. (ideally i should've done this but since i already added a script which does this so no need to do that)
RUN npm run db:generate
RUN npm run build

CMD ["npm", "run", "start-user-app"]
CMD [ "npm", "run", "start-user-app" ]
3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@
"dev": "turbo dev",
"lint": "turbo lint",
"format": "prettier --write \"**/*.{ts,tsx,md}\"",
"db:generate": "cd packages/db && npx prisma generate && cd ../..",
"db:generate": "cd packages/db/ && npx prisma generate && cd ../..",
"start-user-app": "cd ./apps/user-app && npm run start"

},
"devDependencies": {
"@repo/eslint-config": "*",
Expand Down