From 65228989491cc2ef788f3a19e1decc5d141949d8 Mon Sep 17 00:00:00 2001 From: karlosvas <126987511+karlosvas@users.noreply.github.com> Date: Sun, 12 Jan 2025 10:51:33 +0100 Subject: [PATCH] Github actions to create dist in server --- .github/workflows/build.yml | 111 ++++++++++++++++++++++++++++++++++++ .gitignore | 1 - client/.gitignore | 1 + server/.gitignore | 1 + server/package.json | 2 +- server/vercel.json | 8 +-- 6 files changed, 115 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 client/.gitignore create mode 100644 server/.gitignore diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..ca9d7ec5 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,111 @@ +name: Build and Deploy + +on: + push: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Set up Node.js + uses: actions/setup-node@v2 + with: + node-version: "21.2.0" + + - name: Install dependencies for server + run: | + echo -e "\e[34mInstalling dependencies for server...\e[0m" + cd server + npm install + + - name: Build server project + run: | + echo -e "\e[34mBuilding server project...\e[0m" + cd server + npm run build + ls + if [ ! -d "dist" ]; then + echo -e "\e[31mBuild failed: 'dist' directory not found.\e[0m" + exit 1 + else + echo -e "\e[32mBuild succeeded.\e[0m" + + - name: Upload server build artifacts + uses: actions/upload-artifact@v3 + with: + name: server-dist + path: server/dist/ + + - name: Install dependencies for client + run: | + echo -e "\e[34mInstalling dependencies for client...\e[0m" + cd client + npm install + + - name: Build client project + run: | + echo -e "\e[34mBuilding client project...\e[0m" + cd client + npm run build + ls + if [ ! -d "dist" ]; then + echo -e "\e[31mBuild failed: 'dist' directory not found.\e[0m" + exit 1 + else + echo -e "\e[32mBuild succeeded.\e[0m" + + - name: Upload client build artifacts + uses: actions/upload-artifact@v3 + with: + name: client-dist + path: client/dist/ + + deploy: + runs-on: ubuntu-latest + needs: build + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Download server build artifacts + uses: actions/download-artifact@v3 + with: + name: server-dist + path: server/dist/ + + - name: Download client build artifacts + uses: actions/download-artifact@v3 + with: + name: client-dist + path: client/dist/ + + - name: Deploy server to Vercel + run: | + echo -e "\e[34mDeploying server to Vercel...\e[0m" + npm install -g vercel + cd server + ls dist + if [ ! -d "dist" ]; then + echo -e "\e[31mBuild failed: 'dist' directory not found.\e[0m" + exit 1 + fi + npx vercel --prod --token ${{ secrets.VERCEL_TOKEN }} --yes + + - name: Deploy client to Vercel + run: | + echo -e "\e[34mDeploying client to Vercel...\e[0m" + npm install -g vercel + cd client + ls dist + if [ ! -d "dist" ]; then + echo -e "\e[31mBuild failed: 'dist' directory not found.\e[0m" + exit 1 + fi + npx vercel --prod --token ${{ secrets.VERCEL_TOKEN }} --yes diff --git a/.gitignore b/.gitignore index 907aa4c4..7d1bee05 100644 --- a/.gitignore +++ b/.gitignore @@ -12,7 +12,6 @@ dev dist-ssr client/dist *.local -dist # Editor directories and files .vscode/* diff --git a/client/.gitignore b/client/.gitignore new file mode 100644 index 00000000..e985853e --- /dev/null +++ b/client/.gitignore @@ -0,0 +1 @@ +.vercel diff --git a/server/.gitignore b/server/.gitignore new file mode 100644 index 00000000..e985853e --- /dev/null +++ b/server/.gitignore @@ -0,0 +1 @@ +.vercel diff --git a/server/package.json b/server/package.json index 8df370d0..3c1160ea 100644 --- a/server/package.json +++ b/server/package.json @@ -5,7 +5,7 @@ "main": "index.ts", "scripts": { "start": "npm run build && node dist/index.js", - "dev": "node --loader ts-node/esm src/index.js", + "dev": "node --loader ts-node/esm index.js", "test": "npm run build && playwright test", "build": "tsc" }, diff --git a/server/vercel.json b/server/vercel.json index 957d5ead..309aacb2 100644 --- a/server/vercel.json +++ b/server/vercel.json @@ -1,12 +1,6 @@ { "version": 2, - "builds": [ - { - "src": "package.json", - "use": "@vercel/node", - "config": { "distDir": "dist" } - } - ], + "builds": [], "routes": [ { "src": "/(.*)",