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 -->
ตรวจสอบความเข้าใจ
คุณลักษณะใดของ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การนำไปใช้งานบน Vercel: ไม่ต้องกำหนดค่าและ URL สำหรับพรีวิว
- การโฮสต์ React SPA บน AWS S3 และ CloudFront
- การใส่ React/Next.js App ลงใน Docker
- CI/CD ด้วย GitHub Actions สำหรับ React