Workflow overview

Start with a single job that checks out your repo, sets up Node.js, installs dependencies with caching, runs lint/test commands, and triggers a deploy hook.

একটি জব দিয়ে শুরু করুন যা রেপো চেকআউট করে, নোড সেটআপ করে, ক্যাশ সহ ডিপেন্ডেন্সি ইনস্টল করে, লিন্ট/টেস্ট চালায় এবং ডিপ্লয় হুক ট্রিগার করে।

name: Deploy Next.js

on:
  push:
    branches: ["main"]

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      deployments: write
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: "20"
          cache: "npm"
      - run: npm ci
      - run: npm run lint
      - run: npm run test -- --watch=false
      - run: npm run build
      - name: Trigger Vercel Deploy Hook
        run: curl -X POST "$VERCEL_DEPLOY_HOOK"
  • Swap the deploy hook for actions/upload-pages-artifact and deploy-pages to publish to GitHub Pages.
  • গিটহাব পেজেসে প্রকাশ করতে ডিপ্লয় হুকের বদলে actions/upload-pages-artifactdeploy-pages ব্যবহার করুন।

Secrets & security

Store deploy hooks, API keys, and environment URLs as encrypted repository secrets. Require reviewers for production environments and lock workflows to specific branches.

ডিপ্লয় হুক, এপিআই কী ও এনভায়রনমেন্ট ইউআরএল রেপো সিক্রেট হিসেবে এনক্রিপ্ট করে রাখুন। প্রোডাকশন এনভায়রনমেন্টের জন্য রিভিউয়ার আবশ্যক করুন এবং নির্দিষ্ট ব্রাঞ্চে ওয়ার্কফ্লো সীমাবদ্ধ রাখুন।

Rotate secrets quarterly and audit who has access. Pair with OIDC deployments when possible to avoid long-lived tokens.
প্রতি ত্রৈমাসিকে সিক্রেট রোটেট করুন এবং কারা অ্যাক্সেস পাচ্ছে তা অডিট করুন। সম্ভব হলে OIDC ডিপ্লয় ব্যবহার করুন যাতে দীর্ঘস্থায়ী টোকেনের প্রয়োজন না হয়।
  • Use actions/cache with a hash of package-lock.json for faster installs.
  • package-lock.json এর হ্যাশ দিয়ে actions/cache ব্যবহার করুন যেন ইনস্টল দ্রুত হয়।
  • Add concurrency groups to auto-cancel outdated deploy runs.
  • পুরনো ডিপ্লয় রান বাতিল করতে concurrency গ্রুপ সেট করুন।

Resilience & rollbacks

Wire a workflow_run trigger that listens for failed deploys and reverts to the previous stable build. Send Slack or email alerts so teams can respond quickly.

ডিপ্লয় ব্যর্থ হলে workflow_run ট্রিগার দিয়ে আগের স্থিতিশীল বিল্ডে রোলব্যাক করুন। স্ল্যাক বা ইমেইল অ্যালার্ট পাঠান যাতে টিম দ্রুত প্রতিক্রিয়া জানাতে পারে।

  • Run smoke tests against preview URLs before promoting to production.
  • প্রোডাকশনে পাঠানোর আগে প্রিভিউ ইউআরএলে স্মোক টেস্ট চালান।
  • Keep an incident playbook describing rollback steps and contact points.
  • রোলব্যাক ধাপ ও যোগাযোগ তথ্যসহ একটি ইনসিডেন্ট প্লেবুক রাখুন।