Lab 26: Die CI/CD Pipeline verstehen¶
In dieser Übung schaust du unter die Haube der Pipeline. Du lernst, wie GitHub Actions Workflows aufgebaut sind, was die einzelnen Schritte tun und wie du Fehler in der Pipeline erkennst und behebst.
Vorbereitung¶
Du arbeitest im Repository aus Lab 1 und 2. Stelle sicher, dass du
auf dem main-Branch bist:
git switch main
git pull
Phase 1: Workflow-Dateien erkunden¶
- Schau dir die Workflow-Dateien an:
ls .github/workflows/
Du siehst ca. 20 YAML-Dateien. Diese stammen aus Microsofts AL-Go for GitHub Template — einem vorgefertigten CI/CD-Framework speziell für Business-Central-Projekte. Für uns sind nur drei davon relevant:
| Datei | Zweck |
|---|---|
CICD.yaml |
Hauptpipeline: Build + Deploy bei Push/PR |
PullRequestHandler.yaml |
Pipeline für Pull Requests |
PublishToEnvironment.yaml |
Manuelles Deployment |
- Öffne
CICD.yamlin deinem Editor und suche nach dem Trigger-Block:
head -20 .github/workflows/CICD.yaml
Du siehst on: push und on: workflow_dispatch. Das bedeutet:
- Die Pipeline startet automatisch bei jedem Push
- Sie kann auch manuell ausgelöst werden
- Öffne die AL-Go Konfiguration:
cat .AL-Go/settings.json
Hier steht, welches Land (country), welche App-Ordner
(appFolders) und welche Umgebung (environments) genutzt werden.
Phase 2: Einen Build-Fehler provozieren¶
Jetzt erzeugst du absichtlich einen Fehler, um zu lernen, wie die Pipeline-Logs zu lesen sind.
- Erstelle einen neuen Branch:
git switch -c experiment/break-the-build
- Öffne
app/TrainingItem.Table.alund füge einen Syntaxfehler ein. Ändere z.B.tablezutaable:
taable 50100 "Training Item"
- Committe und pushe:
git add app/TrainingItem.Table.al
git commit -m "experiment: break the build"
git push -u origin experiment/break-the-build
- Öffne Actions auf GitHub und beobachte die Pipeline. Nach ca. 18 Minuten wird der Build-Schritt fehlschlagen.
Während du wartest: GitHub Search und CLI¶
Der Build braucht wieder ~18 Minuten. Nutze die Zeit für zwei
praktische Werkzeuge: GitHub Code Search und die gh CLI.
GitHub Code Search¶
GitHub hat eine gute eingebaute Suche. Klicke auf die
Suchleiste oben (oder drücke /) und probiere diese Suchen aus:
- Im eigenen Repo suchen:
repo:it-erben/bc-dev-training-<dein-username> Caption
Findet alle Stellen, an denen Caption vorkommt.
- Nach Dateityp filtern:
repo:it-erben/bc-dev-training-<dein-username> language:al field
Findet nur AL-Dateien mit dem Wort field.
- In der ganzen Organisation suchen:
org:it-erben TrainingItem
Findet die Datei in allen Repos der Teilnehmer.
- Nach Pfad filtern:
org:it-erben path:.github/workflows CICD
Findet Workflow-Dateien in allen Repos.
Tipp: Die vollständige Suchsyntax findest du unter github.com/search/advanced oder in der Dokumentation.
gh CLI für Fortgeschrittene¶
Probiere diese Befehle aus, die im Alltag ziemlich praktisch sind:
# Alle Workflow-Runs anzeigen
gh run list
# Den aktuell laufenden Run live beobachten
gh run watch
# Details eines bestimmten Runs anzeigen
gh run view <run-id>
# Alle PRs auflisten (auch geschlossene)
gh pr list --state all
# Einen PR im Browser öffnen
gh pr view --web
Blame und History auf der Kommandozeile¶
# Wer hat welche Zeile zuletzt geändert?
git blame app/TrainingItem.Table.al
# Alle Commits für eine bestimmte Datei
git log --oneline app/TrainingItem.Table.al
# Änderungen zwischen Branches vergleichen
git diff main...experiment/break-the-build
Tipp: Die gleiche Vergleichsansicht gibt es auf GitHub als URL:
github.com/<repo>/compare/main...experiment/break-the-build
Phase 3: Fehler-Logs lesen¶
-
Klicke auf den fehlgeschlagenen Workflow-Run und dann auf den fehlgeschlagenen Job Build.
-
Scrolle durch die Logs und suche nach Zeilen mit einem roten Fehler-Symbol. Du findest den Kompilierungsfehler mit der Zeilennummer und einer Beschreibung.
Tipp: In den Logs kannst du die Suchfunktion (Ctrl+F / Cmd+F) nutzen und nach
##[error]suchen, um Fehler schnell zu finden.
-
Du kannst die Logs auch über die Kommandozeile prüfen:
gh run list --limit 1 gh run view <run-id> --log-failed
Phase 4: Fehler beheben¶
-
Mache den Syntaxfehler rückgängig — ändere
taablezurück zutable. -
Committe und pushe den Fix:
git add app/TrainingItem.Table.al git commit -m "fix: correct syntax error" git push -
Beobachte die Pipeline erneut. Diesmal sollte der Build durchlaufen.
Phase 5: Aufräumen¶
-
Dieser Branch war nur ein Experiment. Wechsle zurück auf
mainund lösche den Branch:git switch main git push origin --delete experiment/break-the-build git branch -D experiment/break-the-build