diff --git a/.github/workflows/cicd_dev.yml b/.github/workflows/cicd_dev.yml new file mode 100644 index 0000000..8685d11 --- /dev/null +++ b/.github/workflows/cicd_dev.yml @@ -0,0 +1,93 @@ +name: Nur UI CI/CD Pipeline + +on: + push: + branches: + - main + pull_request: + branches: + - main + +env: + NODE_VERSION: '20' + +jobs: + lint: + name: ๐Ÿงน Lint code + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + cache: yarn + - run: yarn install --frozen-lockfile + - run: yarn lint + + test: + name: ๐Ÿงช Run tests + runs-on: ubuntu-latest + needs: lint + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "20" + cache: "yarn" + + - name: Install dependencies + run: yarn install + + - name: Run lint + run: yarn lint + + # Replace with your actual test command if you add test framework (e.g. jest) + - name: Run tests + run: echo "No tests yet" && exit 0 + + build: + name: ๐Ÿ› ๏ธ Build Project + runs-on: ubuntu-latest + needs: test + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "20" + cache: "yarn" + + - name: Install dependencies + run: yarn install + + - name: Build the app + run: yarn build + + # - name: Upload build artifacts + # uses: actions/upload-artifact@v4 + # with: + # name: nextjs-build + # path: .next/ + + deploy: + name: ๐Ÿš€ Deploy to Vercel + runs-on: ubuntu-latest + needs: build + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + # - name: Install Vercel CLI + # run: npm install -g vercel + + # - name: Deploy to Vercel + # run: vercel --prod --token=${{ secrets.VERCEL_TOKEN }}