Grundlegendes zu Workflows
Workflows sind automatisierte Prozesse, die Sie zum Erstellen, Testen, Verpacken, Freigeben oder Bereitstellen Ihres Projekts definieren. Sie bestehen aus einem oder mehreren Aufträgen, die als Reaktion auf bestimmte Ereignisse in Ihrem Repository ausgeführt werden.
Workflowstruktur
Jeder Workflow enthält die folgenden wichtigen Komponenten:
Trigger (Ereignisse)
Definieren Sie, wann Ihr Workflow ausgeführt werden soll – auf Push, Pullanforderung, Zeitplan oder manueller Trigger.
Jobs
Eine Reihe von Schritten, die auf demselben Runner ausgeführt werden. Aufträge werden standardmäßig parallel ausgeführt, können jedoch so konfiguriert werden, dass sie sequenziell ausgeführt werden.
Steps
Einzelne Aufgaben innerhalb eines Auftrags, die Befehle ausführen, Aufgaben einrichten oder Aktionen verwenden können.
Runner
Die Computeumgebung, in der Ihre Aufträge ausgeführt werden – entweder von GitHub gehostet oder selbst gehostet.
Workflow-Standort und Namensgebung
Workflows werden als YAML-Dateien im .github/workflows Verzeichnis Ihres Repositorys gespeichert. Der Dateiname wird zur Workflow-ID in der GitHub-Benutzeroberfläche.
Beispiel für modernen Workflow
Hier ist ein umfassendes Beispiel mit den aktuellen bewährten Methoden:
# .github/workflows/ci.yml
name: CI Pipeline
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
schedule:
- cron: "0 2 * * 0" # Weekly dependency check
env:
NODE_VERSION: "20"
jobs:
test:
name: Test and Lint
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Run linting
run: npm run lint
- name: Run tests with coverage
run: npm run test:coverage
- name: Upload coverage reports
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
build:
name: Build Application
runs-on: ubuntu-latest
needs: test
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Build application
run: npm run build
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-files
path: dist/
Wichtige Verbesserungen bei modernen Workflows
In diesem Beispiel werden die aktuellen bewährten Methoden veranschaulicht:
-
Neueste Aktionsversionen: Verwenden
@v4von Versionen beliebter Aktionen - Zwischenspeicherung von Abhängigkeiten: Beschleunigt die Workflowausführung
- Umgebungsvariablen: Zentrale Konfigurationsverwaltung
-
Auftragsabhängigkeiten: Auftrag
buildwird erst nach erfolgreichen Ausführung vontestausgeführt - Artefaktbehandlung: Ordnungsgemäße Speicherung und Freigabe von Build-Ergebnissen
- Sicherheit: Verwenden von geheimen Schlüsseln für vertrauliche Daten wie Token
Weitere Ressourcen
Erkunden Sie diese Ressourcen, um Ihr Workflowwissen zu verbessern:
- Starterworkflows – Vordefinierte Vorlagen für allgemeine Szenarien
- Workflowsyntaxreferenz – Vollständige Syntaxdokumentation
- Marketplace-Aktionen – Von der Community beigetragene Aktionen