From 7e6ea96a6d097f132e52acdf9ebce8b35db8aff2 Mon Sep 17 00:00:00 2001 From: Evan Guyot <92523408+evan-guyot@users.noreply.github.com> Date: Fri, 29 Mar 2024 10:09:23 +0100 Subject: [PATCH] Chores : Github Workflow --- .github/workflows/nextjs.yml | 49 ++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 .github/workflows/nextjs.yml diff --git a/.github/workflows/nextjs.yml b/.github/workflows/nextjs.yml new file mode 100644 index 0000000..3964202 --- /dev/null +++ b/.github/workflows/nextjs.yml @@ -0,0 +1,49 @@ +name: Next.js CI/CD + +on: + push: + branches: [ main ] + pull_request: + types: [ opened, reopened ] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Detect package manager + id: detect-package-manager + run: | + if [ -f "${{ github.workspace }}/yarn.lock" ]; then + echo "manager=yarn" >> $GITHUB_OUTPUT + elif [ -f "${{ github.workspace }}/package.json" ]; then + echo "manager=npm" >> $GITHUB_OUTPUT + else + echo "Unable to determine package manager" >&2 + exit 1 + fi + + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: 20 + + - name: Restore cache (optional) + uses: actions/cache@v3 + with: + path: | + node_modules + .next/cache + key: ${{ runner.os }}-build-${{ hashFiles('**/package*.json') }} + restore-keys: | + ${{ runner.os }}-build- + + - name: Install dependencies + run: ${{ steps.detect-package-manager.outputs.manager }} install + + - name: Run tests + run: ${{ steps.detect-package-manager.outputs.manager }} test + + - name: Build Next.js project + run: ${{ steps.detect-package-manager.outputs.manager }} run build