0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · บทเรียน

การแคชทรัพยากรพึ่งพาเพื่อเร่งการสร้าง

เร่งไปป์ไลน์ CI ด้วยการแคชทรัพยากรพึ่งพาและไฟล์ผลลัพธ์จากการสร้าง โดยใช้แอ็กชัน actions/cache คีย์ และคีย์สำหรับกู้คืน

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

ต้นทุนของการติดตั้งใหม่

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

แอ็กชันแคช

GitHub มี actions/cache ให้ใช้ คุณระบุ เส้นทาง ที่ต้องการแคชและ คีย์ ที่ใช้ระบุรายการแคช เมื่อพบรายการที่ตรงกัน แอ็กชันจะคืนค่าเส้นทางนั้น หากไม่พบ แอ็กชันจะบันทึกเส้นทางดังกล่าวหลังงานเสร็จ

- uses: actions/cache@v4
  with:
    path: ~/.npm
    key: npm-${{ hashFiles('package-lock.json') }}

การออกแบบคีย์ที่ดี

คีย์ควรเปลี่ยนเฉพาะเมื่อเนื้อหาที่แคชไว้ควรเปลี่ยนเท่านั้น การคำนวณแฮชของไฟล์ล็อกจึงเหมาะอย่างยิ่ง เพราะไฟล์ล็อกใหม่หมายถึงส่วนพึ่งพาใหม่ จึงสร้างรายการแคชใหม่

key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}

คีย์สำหรับคืนค่า

restore-keys จะระบุคำนำหน้าสำหรับใช้เป็นทางเลือก หากไม่พบคีย์ที่ตรงกัน แอ็กชันจะคืนค่าแคชล่าสุดที่มีคีย์ขึ้นต้นด้วยคำนำหน้านั้น ทำให้เริ่มต้นการทำงานต่อได้บางส่วนโดยมีข้อมูลพร้อมใช้งาน

restore-keys: |
  ${{ runner.os }}-npm-

พบแคชเทียบกับไม่พบแคช

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

การแคชในชุดตั้งค่าที่มีมาให้

แอ็กชันสำหรับตั้งค่าภาษามีการแคชในตัว สำหรับโหนด setup-node ที่ใช้ cache: npm จะจัดการแคชส่วนพึ่งพาให้คุณ ไม่จำเป็นต้องเพิ่มขั้นตอนแคชแยกต่างหาก

- uses: actions/setup-node@v4
  with:
    node-version: 20
    cache: npm

สิ่งที่ควรแคช

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

  • โหนด: ~/.npm
  • ไพธอน: แคชของไพพี
  • Java: ~/.m2 หรือแคชของ Gradle

ขอบเขตและข้อจำกัดของแคช

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

การหลีกเลี่ยงแคชเก่า

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

เมทริกซ์และ OS ในคีย์

ในการสร้างแบบเมทริกซ์ข้ามระบบปฏิบัติการหรือรุ่นต่าง ๆ ให้ใส่ runner.os และรุ่นไว้ในคีย์ เพื่อให้แต่ละรูปแบบมีแคชที่ถูกต้องเป็นของตัวเองและไม่ชนกัน

key: ${{ runner.os }}-node20-${{ hashFiles('package-lock.json') }}

การวัดผลลัพธ์

เปรียบเทียบระยะเวลางานก่อนและหลังใช้แคช และดูตัวบ่งชี้การพบแคชในบันทึกการทำงาน อัตราการพบแคชที่ต่ำอย่างต่อเนื่องบ่งชี้ว่าคีย์เปลี่ยนบ่อยเกินไป

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

ทดสอบความเข้าใจของคุณเกี่ยวกับการแคชส่วนพึ่งพา

ทบทวน

คุณเร่งการผสานรวมอย่างต่อเนื่องด้วยการแคชส่วนพึ่งพา โดยใช้แอ็กชัน actions/cache พร้อม คีย์ ที่อิงแฮชของไฟล์ล็อกและทางเลือก คีย์สำหรับคืนค่า ใช้การแคชในตัวของแอ็กชันตั้งค่า เลือกสิ่งที่ควรแคช ใส่ระบบปฏิบัติการและรุ่นในคีย์เมทริกซ์ และหลีกเลี่ยงแคชเก่าด้วยการผูกคีย์เข้ากับไฟล์ล็อก

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

บทเรียน “การแคชทรัพยากรพึ่งพาเพื่อเร่งการสร้าง” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การแคชทรัพยากรพึ่งพาเพื่อเร่งการสร้าง”

เร่งไปป์ไลน์ CI ด้วยการแคชทรัพยากรพึ่งพาและไฟล์ผลลัพธ์จากการสร้าง โดยใช้แอ็กชัน actions/cache คีย์ และคีย์สำหรับกู้คืน คุณปฏิบัติ CI/CD with GitHub Actions & DevOps Pipelines ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน CI/CD with GitHub Actions & DevOps Pipelines หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน CI/CD with GitHub Actions & DevOps Pipelines บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การแคชทรัพยากรพึ่งพาเพื่อเร่งการสร้าง” ใช้เวลานานแค่ไหน

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

ฉันเขียนและรันโค้ดในบทเรียน CI/CD with GitHub Actions & DevOps Pipelines นี้ได้ไหม

ได้ บทเรียน CI/CD with GitHub Actions & DevOps Pipelines ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. ตัวกระตุ้นและเหตุการณ์ของเวิร์กโฟลว์
  2. การเรียกใช้การทดสอบด้วย GitHub Actions
  3. การตรวจรูปแบบและตรวจสอบคุณภาพโค้ด
  4. การแคชทรัพยากรพึ่งพาเพื่อเร่งการสร้าง
← กลับไปที่ CI/CD with GitHub Actions & DevOps Pipelines