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

GitHub Actions สำหรับฟรอนต์เอนด์: ตรวจรูปแบบ ทดสอบ และบิลด์

เขียนเวิร์กโฟลว์ YAML ที่ติดตั้งการพึ่งพา เรียกใช้ ESLint รันเทสต์ Jest และบิลด์แอปเมื่อมีคำขอผสานทุกครั้ง

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

เหตุใดจึงต้องมี CI สำหรับส่วนหน้า

การผสานรวมอย่างต่อเนื่องจะเรียกใช้การทดสอบ เครื่องมือตรวจรูปแบบโค้ด และการสร้างของคุณทุกครั้งที่ส่งโค้ดและสร้างคำขอดึงโค้ด วิธีนี้ตรวจพบการถดถอยก่อนที่จะไปถึงสาขา main และเป็นสิ่งจำเป็นสำหรับทุกทีมที่มีนักพัฒนามากกว่าหนึ่งคน

พื้นฐาน GitHub Actions

กระบวนการทำงานคือไฟล์ YAML ใน .github/workflows/ แต่ละกระบวนการทำงานมีงานต่าง ๆ ที่ทำงานตามตัวกระตุ้น (push, pull_request, schedule)

# .github/workflows/ci.yml
name: CI
on:
  push:
    branches: [main]
  pull_request:
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: '20' }
      - run: npm ci
      - run: npm test

การแคชส่วนพึ่งพา

แคช node_modules (หรือแคชของ pnpm/yarn) เพื่อหลีกเลี่ยงการติดตั้งใหม่ทุกครั้งที่ทำงาน setup-node มีการรองรับแคชในตัว

- uses: actions/setup-node@v4
  with:
    node-version: '20'
    cache: 'npm'   # or 'yarn' or 'pnpm'

งานตรวจรูปแบบโค้ด

เรียกใช้การตรวจสอบของ ESLint และ Prettier ให้การสร้างล้มเหลวเมื่อพบข้อผิดพลาด

lint:
  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 run format:check

งานทดสอบ

เรียกใช้ Vitest หรือ Jest และสร้างรายงานความครอบคลุมเพื่อให้ตรวจสอบได้

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 test -- --coverage
    - uses: codecov/codecov-action@v4
      with:
        files: ./coverage/lcov.info

งานสร้าง

สร้างชุดไฟล์สำหรับใช้งานจริง อัปโหลดเป็นไฟล์ผลลัพธ์สำหรับงานการนำไปใช้งานในขั้นถัดไป

build:
  runs-on: ubuntu-latest
  needs: [lint, test]
  steps:
    - uses: actions/checkout@v4
    - uses: actions/setup-node@v4
      with: { node-version: '20', cache: 'npm' }
    - run: npm ci
    - run: npm run build
    - uses: actions/upload-artifact@v4
      with:
        name: dist
        path: dist/
        retention-days: 7

งานแบบขนาน

การตรวจรูปแบบโค้ด การทดสอบ และการตรวจสอบชนิดข้อมูลสามารถทำงานแบบขนานกันได้ เพราะ Actions จะเรียกใช้ตัวรันงานแยกกันสำหรับแต่ละงาน ใช้ needs: เพื่อบังคับลำดับ (สร้างหลังจากตรวจรูปแบบโค้ดและทดสอบเสร็จ)

การตรวจสอบชนิดข้อมูล

เพิ่มงานตรวจสอบชนิดข้อมูลโดยเฉพาะ: tsc --noEmit วิธีนี้ตรวจพบข้อผิดพลาดของ TypeScript ก่อนทำงานจริง

typecheck:
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v4
    - uses: actions/setup-node@v4
      with: { node-version: '20', cache: 'npm' }
    - run: npm ci
    - run: npx tsc --noEmit

การทดสอบแบบเมทริกซ์

เรียกใช้งานทดสอบกับ Node หลายเวอร์ชันหรือหลายระบบปฏิบัติการพร้อมกัน

test:
  strategy:
    fail-fast: false
    matrix:
      node: [18, 20, 22]
      os: [ubuntu-latest, windows-latest, macos-latest]
  runs-on: ${{ matrix.os }}
  steps:
    - uses: actions/checkout@v4
    - uses: actions/setup-node@v4
      with: { node-version: ${{ matrix.node }} }
    - run: npm ci && npm test

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

ใช้ if: เพื่อให้ขั้นตอนทำงานเฉพาะเมื่อเป็นไปตามเงื่อนไข เช่น ทำงานเฉพาะบนสาขา main

- name: Deploy to staging
  if: github.ref == 'refs/heads/main'
  run: npm run deploy:staging

ความลับและตัวแปร

จัดเก็บคีย์ API และโทเค็นไว้ในความลับของที่เก็บโค้ด (การตั้งค่า → ความลับ) เข้าถึงผ่าน secrets.NAME อย่าคอมมิตความลับลงในที่เก็บโค้ดโดยเด็ดขาด

- run: npm run deploy
  env:
    DEPLOY_TOKEN: ${{ secrets.DEPLOY_TOKEN }}
    AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}

กฎการป้องกันสาขา

ใน การตั้งค่า → สาขา ให้กำหนดให้เวิร์กโฟลว์ CI ทำงานสำเร็จก่อนอนุญาตให้รวมโค้ดเข้ากับ main เมื่อใช้ร่วมกับการตรวจทานที่กำหนด นี่คือมาตรการป้องกันมาตรฐานของทีม

ตรวจสอบอย่างรวดเร็ว

จุดประสงค์ของ cancel-in-progress: true ในบล็อก concurrency ของเวิร์กโฟลว์ GitHub Actions คืออะไร

สรุป: GitHub Actions สำหรับฟรอนต์เอนด์

ไฟล์ YAML ของเวิร์กโฟลว์อยู่ใน .github/workflows/ งานจะทำงานเมื่อมีการ push หรือ PR แคช node_modules ผ่าน setup-node งานมาตรฐาน ได้แก่ lint, ตรวจสอบชนิด, test และ build ทำงานแบบขนานโดยใช้ needs เพื่อกำหนดลำดับ ใช้เมทริกซ์สำหรับการทดสอบหลายเวอร์ชัน จัดการความลับผ่านการตั้งค่าที่เก็บโค้ด การป้องกันสาขาจะกำหนดให้ CI ผ่านก่อนรวมโค้ด ใช้ cancel-in-progress เพื่อป้องกันการทำงานซ้ำ

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

บทเรียน “GitHub Actions สำหรับฟรอนต์เอนด์: ตรวจรูปแบบ ทดสอบ และบิลด์” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “GitHub Actions สำหรับฟรอนต์เอนด์: ตรวจรูปแบบ ทดสอบ และบิลด์”

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

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

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

บทเรียน “GitHub Actions สำหรับฟรอนต์เอนด์: ตรวจรูปแบบ ทดสอบ และบิลด์” ใช้เวลานานแค่ไหน

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

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

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

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

  1. GitHub Actions สำหรับฟรอนต์เอนด์: ตรวจรูปแบบ ทดสอบ และบิลด์
  2. การนำไปใช้งานบน Vercel, Netlify และ Cloudflare Pages
  3. ตัวแปรสภาพแวดล้อมใน CI
  4. การตรวจสอบ Lighthouse อัตโนมัติ
← กลับไปที่ Frontend Academy