diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 0000000..f607b7c --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,51 @@ +name: MERN-Auth | Build + +on: + pull_request: + branches: + - develop + workflow_dispatch: + +jobs: + build: + name: Build Application + runs-on: ubuntu-latest + + steps: + - name: Checkout Code + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 18 + + - name: Cache Node Modules + uses: actions/cache@v4 + with: + path: | + ~/.npm + node_modules + frontend/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json', '**/frontend/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- + + - name: Install Backend Dependencies + run: npm ci --cache .npm --prefer-offline + + - name: Run Backend Build + env: + MONGO_URI: ${{ secrets.MONGO_URI }} + JWT_SECRET: ${{ secrets.JWT_SECRET }} + EMAILJS_SERVICE_ID: ${{ secrets.EMAILJS_SERVICE_ID }} + EMAILJS_TEMPLATE_ID: ${{ secrets.EMAILJS_TEMPLATE_ID }} + EMAILJS_PUBLIC_KEY: ${{ secrets.EMAILJS_PUBLIC_KEY }} + EMAILJS_PRIVATE_KEY: ${{ secrets.EMAILJS_PRIVATE_KEY }} + run: npm run build + + - name: Install Frontend Dependencies + run: npm ci --cache .npm --prefer-offline --prefix frontend + + - name: Run Frontend Build + run: npm run build --prefix frontend diff --git a/package-lock.json b/package-lock.json index 81772ce..34757e0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1020,9 +1020,10 @@ } }, "node_modules/mongoose": { - "version": "8.9.4", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.9.4.tgz", - "integrity": "sha512-DndoI01aV/q40P9DiYDXsYjhj8vZjmmuFwcC3Tro5wFznoE1z6Fe2JgMnbLR6ghglym5ziYizSfAJykp+UPZWg==", + "version": "8.9.5", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.9.5.tgz", + "integrity": "sha512-SPhOrgBm0nKV3b+IIHGqpUTOmgVL5Z3OO9AwkFEmvOZznXTvplbomstCnPOGAyungtRXE5pJTgKpKcZTdjeESg==", + "license": "MIT", "dependencies": { "bson": "^6.10.1", "kareem": "2.6.3",