CI/CD with GitHub Actions & DevOps Pipelines · Lektion

Matrix-Builds für mehrere Umgebungen

Nutzen Sie Matrix-Strategien, um Jobs parallel über mehrere Versionen von Programmiersprachen, Betriebssystemen oder Konfigurationen auszuführen.

Lektion 1 von 412 Schritte

Matrix-Builds für mehrere Umgebungen ist eine kostenlose CI/CD with GitHub Actions & DevOps Pipelines-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des CI/CD with GitHub Actions & DevOps Pipelines-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der CI/CD with GitHub Actions & DevOps Pipelines-Kurs umfasst insgesamt 4 Lektionen.

Was sind Matrix-Builds?

Willkommen bei einem leistungsstarken Feature von GitHub Actions: den Matrix-Builds! Stellen Sie sich vor, Sie müssten Ihren Code in vielen verschiedenen Umgebungen testen, etwa unter verschiedenen Betriebssystemen oder mit unterschiedlichen Versionen einer Programmiersprache.

Statt für jede Kombination einen separaten Workflow zu erstellen, können Sie mit Matrix-Builds eine Reihe von Variablen definieren. GitHub Actions führt Ihre Jobs dann automatisch für jede mögliche Kombination dieser Variablen aus.

Warum Matrix-Builds verwenden?

Matrix-Builds sind besonders nützlich für:

  • Plattformübergreifende Tests: Sie stellen sicher, dass Ihre Anwendung unter Windows, macOS und Linux funktioniert.
  • Kompatibilität mit mehreren Versionen: Sie testen Ihre Anwendung mit verschiedenen Versionen von Node.js, Python oder Ihrer Datenbank.
  • Parallele Ausführung: Sie führen all diese Tests gleichzeitig aus und sparen dadurch viel Zeit.

So erreichen Sie effizient eine umfassendere Testabdeckung.

Grundlegende Matrix-Syntax

Sie definieren eine Matrix im Abschnitt strategy eines Jobs. Unter strategy.matrix listen Sie eine oder mehrere Variablen auf, jeweils mit einem Array von Werten.

GitHub Actions erstellt anschließend für jede Kombination einen Job. Sehen wir uns an, wie das aussieht:

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

Beispiel: Mehrere Node.js-Versionen

Im vorherigen Ausschnitt haben wir eine Variable node-version mit drei Werten definiert: 14, 16 und 18.

Diese einzelne Job-Definition löst drei separate Jobs aus. Jeder davon läuft auf ubuntu-latest, verwendet aber eine andere Node.js-Version. So stellen Sie sicher, dass Ihr Projekt mit diesen Versionen funktioniert.

Mehrere Matrix-Variablen kombinieren

Sie sind nicht auf eine einzige Variable beschränkt! Sie können mehrere Variablen in Ihrer Matrix kombinieren. Beispielsweise können Sie verschiedene Betriebssysteme mit unterschiedlichen Node.js-Versionen testen.

Fügen Sie unter strategy.matrix einfach weitere Schlüssel-Wert-Paare hinzu. Die Gesamtzahl der Jobs ergibt sich aus dem Produkt der Anzahl der Werte jeder Variable.

Beispiel: Matrix aus Betriebssystemen und Node.js-Versionen

So richten Sie eine Matrix ein, um sowohl unter Ubuntu als auch unter Windows mit den Node.js-Versionen 16 und 18 zu testen.

Dadurch werden 2 (Betriebssysteme) * 2 (Node.js-Versionen) = 4 separate Jobs erstellt.

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

Kombinationen mit „include“ anpassen

Manchmal benötigen Sie bestimmte Kombinationen, die nicht durch das standardmäßige kartesische Produkt abgedeckt werden, oder Sie möchten für bestimmte Builds zusätzliche Variablen hinzufügen. Verwenden Sie include, um neue Matrix-Einträge hinzuzufügen.

Vielleicht möchten Sie beispielsweise einen zusätzlichen Test nur unter Ubuntu mit Node.js 14 ausführen oder eine bestimmte Umgebungsvariable an eine bestimmte Kombination aus Betriebssystem und Version übergeben.

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'

Bestimmte Kombinationen ausschließen

Was ist, wenn eine Kombination bekanntermaßen fehlschlägt oder für Ihr Projekt nicht relevant ist? Mit dem Schlüsselwort exclude können Sie bestimmte Konfigurationen aus Ihrer Matrix entfernen.

So vermeiden Sie unnötige Job-Ausführungen und konzentrieren sich auf relevante Testfälle.

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

Auf Matrix-Variablen zugreifen

Innerhalb Ihrer Job-Schritte können Sie über die Syntax ${{ matrix.variable_name }} auf die aktuellen Werte der Matrix-Variablen zugreifen. Das ist entscheidend, um Tools zu konfigurieren oder Befehle auszuführen, die für die jeweilige Matrix-Kombination spezifisch sind.

Beispielsweise legt ${{ matrix.os }} das Betriebssystem des Runners dynamisch fest, während ${{ matrix.node-version }} die Node.js-Setup-Action konfiguriert.

Praktische Anwendungen

Matrix-Builds sind besonders leistungsstark für:

  • Bibliotheksentwicklung: Sie testen mit mehreren Versionen einer Abhängigkeit.
  • Projekte mit mehreren Programmiersprachen: Sie erstellen und testen Komponenten, die in verschiedenen Sprachen oder mit verschiedenen Compilern geschrieben wurden.
  • Browser-Kompatibilität: Wenn das verwendete Tool dies unterstützt, testen Sie Webanwendungen in verschiedenen Browsern.

So verwandeln Sie komplexe Testszenarien in kompakte, wartbare Workflows.

Matrix-Build-Herausforderung

Betrachten Sie einen GitHub-Actions-Workflow, der eine Matrix-Strategie verwendet. Die Matrix ist folgendermaßen definiert:

strategy:
  matrix:
    os: [ubuntu-latest, macos-latest]
    python-version: [3.8, 3.9]
    exclude:
      - os: macos-latest
        python-version: 3.8

Wie viele Jobs werden durch diese Matrix-Konfiguration erstellt?

Rückblick: Matrix-Builds

Sehr gut! Sie haben die Matrix-Builds von GitHub Actions kennengelernt.

  • Sie ermöglichen es Ihnen, Jobs für mehrere Kombinationen von Variablen auszuführen, etwa Betriebssysteme und Sprachversionen.
  • Sie werden innerhalb eines Jobs mit strategy.matrix definiert.
  • include fügt bestimmte Kombinationen hinzu, während exclude sie entfernt.
  • Auf Variablen wird über ${{ matrix.variable_name }} zugegriffen.

Matrix-Builds sind unverzichtbar für effiziente und umfassende Tests in unterschiedlichen Umgebungen. Üben Sie weiter, um sie sicher zu beherrschen!

Kostenlos starten

Lerne CI/CD with GitHub Actions & DevOps Pipelines mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
12
Lektionen
48

Häufig gestellte Fragen

Ist die Lektion „Matrix-Builds für mehrere Umgebungen“ kostenlos?

Ja — der vollständige Text von „Matrix-Builds für mehrere Umgebungen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des CI/CD with GitHub Actions & DevOps Pipelines-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der CI/CD with GitHub Actions & DevOps Pipelines-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Matrix-Builds für mehrere Umgebungen“?

Nutzen Sie Matrix-Strategien, um Jobs parallel über mehrere Versionen von Programmiersprachen, Betriebssystemen oder Konfigurationen auszuführen. Du übst CI/CD with GitHub Actions & DevOps Pipelines mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um CI/CD with GitHub Actions & DevOps Pipelines zu starten?

Keine Vorkenntnisse erforderlich. CI/CD with GitHub Actions & DevOps Pipelines auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Matrix-Builds für mehrere Umgebungen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser CI/CD with GitHub Actions & DevOps Pipelines-Lektion Code schreiben und ausführen?

Ja. Jede CI/CD with GitHub Actions & DevOps Pipelines-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Matrix-Builds für mehrere Umgebungen
  2. Abhängigkeiten für mehr Geschwindigkeit cachen
  3. Wiederverwendbare Workflows und Actions
  4. Bedingte Ausführung und Job-Abhängigkeiten
← Zurück zu CI/CD with GitHub Actions & DevOps Pipelines