diff --git a/.github/workflows/ci-cd.yaml b/.github/workflows/ci-cd.yaml new file mode 100644 index 0000000..9004de0 --- /dev/null +++ b/.github/workflows/ci-cd.yaml @@ -0,0 +1,57 @@ +name: CI/CD Pipeline + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [14.x, 16.x] + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Set up Node.js + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + + - name: Install dependencies + run: npm install + + - name: Run tests + run: npm test + + - name: Build project + run: npm run build + + - name: Upload build artifacts + uses: actions/upload-artifact@v2 + with: + name: build-artifacts + path: build/ + + deploy: + runs-on: ubuntu-latest + needs: build + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Download build artifacts + uses: actions/download-artifact@v2 + with: + name: build-artifacts + path: build/ + + - name: Deploy to hosting service + run: echo "Deployment step here (e.g., deploy to Firebase, Netlify, or Heroku)"