0Pricing
React Academy · บทเรียน

CI/CD ด้วย GitHub Actions สำหรับ React

ทำให้ขั้นตอนตรวจสอบโค้ด การทดสอบ การสร้าง และการนำไปใช้งานเป็นอัตโนมัติในเวิร์กโฟลว์ GitHub Actions ทุกครั้งที่มีการพุช

CI/CD ด้วย GitHub Actions สำหรับ React เป็นบทเรียน React Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน React Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน

GitHub Actions คืออะไร

GitHub Actions คือแพลตฟอร์มสำหรับการผสานรวมและการส่งมอบหรือปรับใช้อย่างต่อเนื่องที่มีอยู่ใน GitHub กำหนดกระบวนงานในไฟล์ YAML ภายใต้ .github/workflows/ เพื่อให้ทำงานเมื่อเกิดการพุช คำขอดึง หรือเหตุการณ์ตามกำหนดเวลา

กระบวนงานการผสานรวมอย่างต่อเนื่องพื้นฐาน

กระบวนงานขั้นต่ำที่ติดตั้งสิ่งที่ต้องพึ่งพา ตรวจสอบรูปแบบโค้ด และทำการทดสอบทุกครั้งที่มีการพุชหรือคำขอดึง

# .github/workflows/ci.yml
name: CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    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 test -- --coverage

การแคช node_modules

แคช ~/.npm (แคชของ npm ไม่ใช่ node_modules) เพื่อเร่งการติดตั้งสิ่งที่ต้องพึ่งพา โดย actions/setup-node จัดการเรื่องนี้ผ่านตัวเลือก cache

- uses: actions/setup-node@v4
  with:
    node-version: 20
    cache: 'npm' # caches ~/.npm based on package-lock.json hash

ขั้นตอนการสร้าง

เพิ่มขั้นตอนการสร้างหลังการทดสอบเพื่อยืนยันว่าโครงการคอมไพล์ได้โดยไม่มีข้อผิดพลาด

- name: Build
  run: npm run build

# For Next.js — catch TypeScript errors:
- name: Type Check
  run: npx tsc --noEmit

ปรับใช้ไปยัง Vercel เมื่อผสานรวม

ปรับใช้ไปยัง Vercel เมื่อมีการพุชไปยัง main โดยใช้ Vercel CLI ในกระบวนงาน

- name: Deploy to Vercel
  env:
    VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
    VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
    VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
  run: |
    npm install -g vercel
    vercel pull --yes --environment=production --token=$VERCEL_TOKEN
    vercel build --prod --token=$VERCEL_TOKEN
    vercel deploy --prebuilt --prod --token=$VERCEL_TOKEN

ปรับใช้ไปยัง S3 เมื่อผสานรวม

ซิงค์ผลลัพธ์การสร้างไปยัง S3 และทำให้แคชของ CloudFront หมดอายุหลังจากการสร้างบน main สำเร็จ

- name: Deploy to S3
  if: github.ref == 'refs/heads/main'
  env:
    AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
    AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
  run: |
    aws s3 sync dist/ s3://my-bucket/ --delete
    aws cloudfront create-invalidation --distribution-id ${{ secrets.CF_ID }} --paths "/*"

การทดสอบ E2E ด้วย Playwright ใน CI

เรียกใช้การทดสอบ E2E ด้วย Playwright ใน CI หลังการสร้าง ติดตั้งไบนารีของเบราว์เซอร์ด้วยขั้นตอนเฉพาะ

- name: Install Playwright Browsers
  run: npx playwright install --with-deps chromium

- name: Run E2E Tests
  run: npx playwright test

- uses: actions/upload-artifact@v4
  if: failure()
  with:
    name: playwright-report
    path: playwright-report/

งานเมทริกซ์แบบขนาน

ใช้กลยุทธ์เมทริกซ์เพื่อเรียกใช้การทดสอบแบบขนานบน Node.js หลายเวอร์ชันหรือหลายสภาพแวดล้อม

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18, 20, 22]
    steps:
      - uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}

การจัดการข้อมูลลับ

จัดเก็บค่าที่ละเอียดอ่อน เช่น คีย์ส่วนติดต่อโปรแกรมประยุกต์และโทเค็นการปรับใช้ เป็นข้อมูลลับของ GitHub (คลังโค้ด → การตั้งค่า → ข้อมูลลับ) เข้าถึงค่าเหล่านี้ในกระบวนงานด้วย ${{ secrets.MY_SECRET }}

ขั้นตอนแบบมีเงื่อนไข

ใช้เงื่อนไข if: เพื่อเรียกใช้ขั้นตอนเฉพาะบนสาขา เหตุการณ์ PR หรือหลังจากขั้นตอนก่อนหน้าสำเร็จเท่านั้น

- name: Deploy
  if: github.ref == 'refs/heads/main' && github.event_name == 'push'
  run: npm run deploy

ป้ายสถานะ

เพิ่มป้ายสถานะการสร้างลงใน README เพื่อแสดงสถานะ CI ได้อย่างรวดเร็ว

<!-- README.md -->
![CI](https://github.com/myorg/myrepo/actions/workflows/ci.yml/badge.svg)

ตรวจสอบความเข้าใจ

คุณลักษณะใดของ GitHub Actions ที่เรียกใช้งานเดียวกันบนการกำหนดค่าหลายแบบ เช่น Node.js ต่างเวอร์ชัน พร้อมกัน

สรุป

กำหนดกระบวนงาน CI ใน YAML ภายใต้ .github/workflows/ ใช้ actions/setup-node พร้อม cache: 'npm' เพื่อให้ติดตั้งได้รวดเร็ว เพิ่มขั้นตอนตรวจสอบรูปแบบโค้ด ตรวจสอบชนิดข้อมูล ทดสอบ และสร้าง ปรับใช้ตามเงื่อนไขเมื่อมีการพุชไปยังสาขา main จัดเก็บข้อมูลลับในข้อมูลลับของ GitHub และใช้การสร้างแบบเมทริกซ์สำหรับการทดสอบหลายเวอร์ชัน

คำถามที่พบบ่อย

บทเรียน “CI/CD ด้วย GitHub Actions สำหรับ React” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “CI/CD ด้วย GitHub Actions สำหรับ React” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส React Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “CI/CD ด้วย GitHub Actions สำหรับ React”

ทำให้ขั้นตอนตรวจสอบโค้ด การทดสอบ การสร้าง และการนำไปใช้งานเป็นอัตโนมัติในเวิร์กโฟลว์ GitHub Actions ทุกครั้งที่มีการพุช คุณปฏิบัติ React Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน React Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน React Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “CI/CD ด้วย GitHub Actions สำหรับ React” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน React Academy นี้ได้ไหม

ได้ บทเรียน React Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การนำไปใช้งานบน Vercel: ไม่ต้องกำหนดค่าและ URL สำหรับพรีวิว
  2. การโฮสต์ React SPA บน AWS S3 และ CloudFront
  3. การใส่ React/Next.js App ลงใน Docker
  4. CI/CD ด้วย GitHub Actions สำหรับ React
← กลับไปที่ React Academy