diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..fc9f510 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,77 @@ +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 + run: | + echo -e "\e[34mInstalling dependencies...\e[0m" + cd server + npm install + + - name: Build project + run: | + echo -e "\e[34mBuilding 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" + fi + + - name: Upload build artifacts + uses: actions/upload-artifact@v3 + with: + name: dist + path: server/dist + + deploy: + runs-on: ubuntu-latest + needs: build + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Download build artifacts + uses: actions/download-artifact@v3 + with: + name: dist + path: server/dist/ + + - name: Deploy server to Vercel + run: | + echo -e "\e[34mDeploying 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 }} --name thefluentspanishhouse-server --yes + + - name: Deploy client to Vercel + run: | + echo -e "\e[34mDeploying to Vercel...\e[0m" + npm install -g vercel + cd client + npx vercel --prod --token ${{ secrets.VERCEL_TOKEN }} --name thefluentspanishhouse-client --yes diff --git a/.gitignore b/.gitignore index 907aa4c..7d1bee0 100644 --- a/.gitignore +++ b/.gitignore @@ -12,7 +12,6 @@ dev dist-ssr client/dist *.local -dist # Editor directories and files .vscode/* diff --git a/server/package.json b/server/package.json index 8df370d..3c1160e 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 957d5ea..bc45e2d 100644 --- a/server/vercel.json +++ b/server/vercel.json @@ -2,9 +2,8 @@ "version": 2, "builds": [ { - "src": "package.json", - "use": "@vercel/node", - "config": { "distDir": "dist" } + "src": "dist/index.js", + "use": "@vercel/node" } ], "routes": [