Matrix-Builds für mehrere Umgebungen
Nutzen Sie Matrix-Strategien, um Jobs parallel über mehrere Versionen von Programmiersprachen, Betriebssystemen oder Konfigurationen auszuführen.
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 testBeispiel: 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 testKombinationen 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: 16Auf 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.matrixdefiniert. includefügt bestimmte Kombinationen hinzu, währendexcludesie 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!
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
- Matrix-Builds für mehrere Umgebungen
- Abhängigkeiten für mehr Geschwindigkeit cachen
- Wiederverwendbare Workflows und Actions
- Bedingte Ausführung und Job-Abhängigkeiten