การสร้างแบบเมทริกซ์สำหรับหลายสภาพแวดล้อม
ใช้กลยุทธ์แบบเมทริกซ์เพื่อเรียกใช้งานหลายเวอร์ชันของภาษา ระบบปฏิบัติการ หรือการกำหนดค่าแบบขนานกัน
การสร้างแบบเมทริกซ์สำหรับหลายสภาพแวดล้อม เป็นบทเรียน CI/CD with GitHub Actions & DevOps Pipelines ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน CI/CD with GitHub Actions & DevOps Pipelines และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส CI/CD with GitHub Actions & DevOps Pipelines มีบทเรียนทั้งหมด 4 บทเรียน
การสร้างด้วยเมทริกซ์คืออะไร
ขอต้อนรับสู่คุณลักษณะที่ทรงพลังใน GitHub Actions นั่นคือการสร้างด้วยเมทริกซ์! ลองนึกภาพว่าต้องทดสอบโค้ดของคุณในสภาพแวดล้อมที่หลากหลาย เช่น ระบบปฏิบัติการหลายแบบหรือรุ่นต่าง ๆ ของภาษาโปรแกรม
แทนที่จะสร้างเวิร์กโฟลว์แยกกันสำหรับทุกชุดค่าผสม การสร้างด้วยเมทริกซ์ช่วยให้คุณกำหนดชุดตัวแปร แล้ว GitHub Actions จะเรียกใช้งานของคุณโดยอัตโนมัติสำหรับชุดค่าผสมที่เป็นไปได้ทั้งหมดของตัวแปรเหล่านั้น
เหตุใดจึงใช้การสร้างด้วยเมทริกซ์
การสร้างด้วยเมทริกซ์มีประโยชน์อย่างมากสำหรับ:
- การทดสอบข้ามแพลตฟอร์ม: ตรวจสอบให้แน่ใจว่าแอปพลิเคชันของคุณทำงานบน Windows, macOS และ Linux
- ความเข้ากันได้กับหลายรุ่น: ทดสอบกับ Node.js, Python หรือฐานข้อมูลรุ่นต่าง ๆ
- การทำงานแบบขนาน: เรียกใช้การทดสอบทั้งหมดพร้อมกัน ช่วยประหยัดเวลาได้มาก
สิ่งเหล่านี้ช่วยให้คุณครอบคลุมการทดสอบได้กว้างขึ้นอย่างมีประสิทธิภาพ
ไวยากรณ์เมทริกซ์พื้นฐาน
คุณกำหนดเมทริกซ์ภายในส่วน strategy ของงาน ภายใน strategy.matrix คุณจะแสดงรายการตัวแปรอย่างน้อยหนึ่งตัว โดยแต่ละตัวมีอาร์เรย์ของค่า
จากนั้น GitHub Actions จะสร้างงานสำหรับทุกชุดค่าผสม มาดูกันว่ามีลักษณะอย่างไร:
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14, 16, 18]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm testตัวอย่าง: Node.js หลายรุ่น
ในข้อมูลโค้ดก่อนหน้านี้ เรากำหนดตัวแปร node-version ที่มีสามค่า ได้แก่ 14, 16 และ 18
การกำหนดงานเพียงครั้งเดียวนี้จะเรียกใช้งานแยกกันสามงาน โดยแต่ละงานทำงานบน ubuntu-latest แต่ใช้ Node.js คนละรุ่น วิธีนี้ช่วยให้มั่นใจว่าโครงการของคุณทำงานได้กับรุ่นเหล่านี้ทั้งหมด
การรวมตัวแปรเมทริกซ์หลายตัว
คุณไม่ได้จำกัดอยู่แค่ตัวแปรเดียว! คุณสามารถรวมตัวแปรหลายตัวไว้ในเมทริกซ์ได้ ตัวอย่างเช่น คุณอาจต้องการทดสอบระบบปฏิบัติการต่าง ๆ ด้วย Node.js รุ่นต่าง ๆ
เพียงเพิ่มคู่คีย์-ค่าใต้ strategy.matrix จำนวนงานทั้งหมดจะเท่ากับผลคูณของจำนวนค่าสำหรับตัวแปรแต่ละตัว
ตัวอย่าง: เมทริกซ์ OS และ Node.js
ต่อไปนี้คือวิธีกำหนดเมทริกซ์เพื่อทดสอบทั้งบน Ubuntu และ Windows ด้วย Node.js รุ่น 16 และ 18
การกำหนดค่านี้จะสร้าง 2 (OS) * 2 (รุ่นของ Node.js) = งานแยกกัน 4 งาน
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
node-version: [16, 18]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm testการปรับแต่งชุดค่าผสมด้วยคำสั่งเพิ่มรายการ
บางครั้งคุณต้องการชุดค่าผสมเฉพาะที่ไม่ได้อยู่ในผลคูณคาร์ทีเซียนเริ่มต้น หรือต้องการเพิ่มตัวแปรสำหรับการสร้างบางชุด ให้ใช้ include เพื่อเพิ่มรายการใหม่ลงในเมทริกซ์
ตัวอย่างเช่น คุณอาจต้องการเรียกใช้การทดสอบเพิ่มเติมเฉพาะบน Ubuntu ด้วย Node.js 14 หรือส่งตัวแปรสภาพแวดล้อมเฉพาะไปยังชุดค่าผสมของระบบปฏิบัติการและรุ่นที่กำหนด
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
node-version: [16, 18]
include:
- os: ubuntu-latest
node-version: 14
test-suite: 'full'การยกเว้นชุดค่าผสมเฉพาะ
หากคุณมีชุดค่าผสมที่ทราบว่าจะล้มเหลวหรือไม่เกี่ยวข้องกับโครงการของคุณล่ะ คีย์เวิร์ด exclude ช่วยให้คุณลบการกำหนดค่าเฉพาะออกจากเมทริกซ์ได้
วิธีนี้ช่วยให้คุณหลีกเลี่ยงการเรียกใช้งานที่ไม่จำเป็นและมุ่งเน้นไปที่กรณีทดสอบที่เกี่ยวข้อง
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
node-version: [16, 18, 20]
exclude:
- os: windows-latest
node-version: 16การเข้าถึงตัวแปรเมทริกซ์
ภายในขั้นตอนของงาน คุณสามารถเข้าถึงค่าปัจจุบันของตัวแปรเมทริกซ์ได้โดยใช้ไวยากรณ์ ${{ matrix.variable_name }} ซึ่งมีความสำคัญอย่างยิ่งต่อการกำหนดค่าเครื่องมือหรือเรียกใช้คำสั่งเฉพาะสำหรับแต่ละชุดค่าผสมของเมทริกซ์
ตัวอย่างเช่น ${{ matrix.os }} จะกำหนดระบบปฏิบัติการของตัวเรียกใช้งานแบบไดนามิก ส่วน ${{ matrix.node-version }} จะกำหนดค่าการตั้งค่า Node.js
การประยุกต์ใช้จริง
การสร้างด้วยเมทริกซ์มีประสิทธิภาพสำหรับ:
- การพัฒนาไลบรารี: ทดสอบกับข้อพึ่งพาหลายรุ่น
- โครงการหลายภาษา: สร้างและทดสอบองค์ประกอบที่เขียนด้วยภาษาหรือคอมไพเลอร์ต่างกัน
- ความเข้ากันได้กับเบราว์เซอร์: หากใช้เครื่องมือที่รองรับ ก็สามารถทดสอบเว็บแอปในเบราว์เซอร์ต่าง ๆ ได้
สิ่งเหล่านี้ช่วยเปลี่ยนสถานการณ์การทดสอบที่ซับซ้อนให้เป็นเวิร์กโฟลว์ที่กระชับและดูแลรักษาได้ง่าย
โจทย์ท้าทายการสร้างด้วยเมทริกซ์
พิจารณาเวิร์กโฟลว์ GitHub Actions ที่ใช้กลยุทธ์เมทริกซ์ โดยกำหนดเมทริกซ์ดังนี้:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
python-version: [3.8, 3.9]
exclude:
- os: macos-latest
python-version: 3.8
การกำหนดค่าเมทริกซ์นี้จะสร้างงานทั้งหมดกี่งาน
ทบทวน: การสร้างด้วยเมทริกซ์
ทำได้ดีมาก! คุณได้เรียนรู้เกี่ยวกับการสร้างด้วยเมทริกซ์ของ GitHub Actions แล้ว
- ช่วยให้คุณเรียกใช้งานสำหรับชุดค่าผสมหลายแบบของตัวแปร เช่น OS รุ่นของภาษา และอื่น ๆ
- กำหนดโดยใช้
strategy.matrixภายในงาน includeใช้เพิ่มชุดค่าผสมเฉพาะ ส่วนexcludeใช้ลบชุดค่าผสมเหล่านั้น- เข้าถึงตัวแปรได้ผ่าน
${{ matrix.variable_name }}
การสร้างด้วยเมทริกซ์มีความสำคัญต่อการทดสอบที่มีประสิทธิภาพและครอบคลุมในสภาพแวดล้อมที่หลากหลาย หมั่นฝึกฝนเพื่อเชี่ยวชาญการใช้งาน
คำถามที่พบบ่อย
บทเรียน “การสร้างแบบเมทริกซ์สำหรับหลายสภาพแวดล้อม” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การสร้างแบบเมทริกซ์สำหรับหลายสภาพแวดล้อม” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส CI/CD with GitHub Actions & DevOps Pipelines ให้อัปเกรดเป็น CoddyKit PRO คอร์ส CI/CD with GitHub Actions & DevOps Pipelines มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การสร้างแบบเมทริกซ์สำหรับหลายสภาพแวดล้อม”
ใช้กลยุทธ์แบบเมทริกซ์เพื่อเรียกใช้งานหลายเวอร์ชันของภาษา ระบบปฏิบัติการ หรือการกำหนดค่าแบบขนานกัน คุณปฏิบัติ 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 ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การสร้างแบบเมทริกซ์สำหรับหลายสภาพแวดล้อม” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน CI/CD with GitHub Actions & DevOps Pipelines นี้ได้ไหม
ได้ บทเรียน CI/CD with GitHub Actions & DevOps Pipelines ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การสร้างแบบเมทริกซ์สำหรับหลายสภาพแวดล้อม
- การแคชทรัพยากรที่ต้องพึ่งพาเพื่อเพิ่มความเร็ว
- เวิร์กโฟลว์และแอ็กชันที่นำกลับมาใช้ซ้ำได้
- การดำเนินการแบบมีเงื่อนไขและการพึ่งพาระหว่างงาน