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

การสร้างแบบเมทริกซ์สำหรับหลายสภาพแวดล้อม

ใช้กลยุทธ์แบบเมทริกซ์เพื่อเรียกใช้งานหลายเวอร์ชันของภาษา ระบบปฏิบัติการ หรือการกำหนดค่าแบบขนานกัน

การสร้างแบบเมทริกซ์สำหรับหลายสภาพแวดล้อม เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

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