Zum Inhalt springen
GitTree
CI/CD-Pipelines

Führen Sie Pipelines lokal aus

GitTree bereitet den genauen act- oder gitlab-ci-local-Befehl für eine Workflowdatei oder einen Job vor und gibt ihn in ein neues Terminal ein, damit Sie ihn ausführen können. Jobs werden vor dem Pushen in Docker Containern auf Ihrem Computer ausgeführt. Lokale Pipelines sind Teil des kostenlosen Plans und benötigen kein Hosting-Konto.

KostenlosAktualisiert

Funktioniert in GitTree Kostenlos: alle lokalen Git-Funktionen, kein Konto erforderlich.

Auf dieser Seite
  1. Bevor Sie beginnen
  2. Wo es zu finden ist
  3. Schritte
  4. Erwartetes Ergebnis
  5. Installieren Sie Docker und die Läufer
  6. Die Beispieldateien
  7. Bitbucket Pipelines und Azure Pipelines
  8. Wie sich eine lokale Ausführung von Ihrem Host unterscheidet
  9. Wenn etwas schief geht
  10. Fragen
  11. Verwandt

Bevor Sie beginnen

  • Docker, läuft: Docker Desktop, OrbStack, Colima oder Docker Engine. Beide Runner starten jeden Job in einem Container.
  • Der Läufer für Ihre Datei: act für GitHub Actions (.github/workflows/*.yml), gitlab-ci-local für GitLab CI (.gitlab-ci.yml). Installieren Sie es außerhalb des Repositorys in einem Ordner auf PATH.
  • Ein vertrauenswürdiges Repository (repository trust): Eine lokale Ausführung führt den Code des Repositorys aus.
  • Eine unterstützte Terminal-Shell: bash, zsh, sh oder fish on macOS; PowerShell auf Windows; Bash, Zsh, Sh oder Fish auf Linux.

Wo es zu finden ist

  • Die Schaltfläche CI/CD in der Symbolleiste: Ohne verbundenes Konto oder Pro öffnet sich die Ansicht auf Local pipelines.
  • Der Abschnitt TOOLS im linken Bereich: Prepare local pipeline.
  • Tools in der Symbolleiste (neben Terminal) oder im Menü der Repository-Registerkarte: Prepare local pipeline…, auch in der Befehlspalette oder mit Alt+Shift+L.
AktionmacOSWindows und Linux
Die Befehlspalette, dann Prepare local pipeline…⌘⇧PCtrl+Shift+P
Show CI/CD⌥PAlt+P

Schritte

  1. Prüfen Sie, was Sie brauchen

    Öffnen Sie CI/CD. Local pipelines listet What you need auf: Docker, act und gitlab-ci-local mit Found oder Not found und wo sie jeweils gefunden wurden, die Vertrauensstellung des Repositorys und die Terminal-Shell. Ein fehlendes Programm zeigt, wie es installiert wird; Installieren Sie es und drücken Sie dann Check again. Ask Nour to Set Up the Local Runner ist Teil von Pro, das derzeit jeder kostenlos nutzt. Das Vorbereiten und Ausführen des Befehls lokal funktioniert nicht.

    Die CI/CD-Ansicht für lokale Pipelines, wobei Docker und act gefunden und gitlab-ci-local nicht gefunden wurden
    Lokale Pipelines sind als „Frei“ gekennzeichnet. Für darüber liegende gehostete Läufe ist weiterhin ein verbundenes Konto erforderlich.GitTree-Schnittstelle mit einem Demonstrations-Repository.
  2. Fügen Sie eine Pipeline-Datei hinzu oder verwenden Sie Ihre eigene

    Pipeline files in this repository listet jede Datei mit Ready to run oder dem Grund auf, warum sie nicht ausgeführt werden kann. Da noch keine Datei vorhanden ist, schreibt Add GitHub Actions sample .github/workflows/gittree-local.yml und Add GitLab CI sample schreibt .gitlab-ci.yml, jeweils mit zwei kommentierten Jobs. GitTree überschreibt niemals eine vorhandene Datei. Die Datei wird im Editor geöffnet: Geben Sie Ihre Build- und Testbefehle darin ein.

  3. Bereiten Sie den Befehl vor

    Drücken Sie Run Locally…. Wählen Sie in Prepare local pipeline das Pipeline config, ein Job oder Runner default jobs und das Terminal shell und dann Prepare command. Es läuft noch nichts.

  4. Führen Sie es im Terminal aus

    Lesen Sie Prepared command und dann Type in new terminal. GitTree gibt es in ein neues Terminal ein und drückt nie die Eingabetaste: Überprüfen Sie es und drücken Sie selbst die Eingabetaste. Die Ausgabe des Jobs erscheint im Terminal.

Erwartetes Ergebnis

Der Läufer ruft das Bild des Auftrags beim ersten Mal ab, führt dann jeden Schritt in einem Container aus und gibt das Ergebnis im Terminal aus. Die Dateien Ihres Repositorys werden so verwendet, wie sie sich auf der Festplatte befinden, unabhängig davon, ob sie committet sind oder nicht.

Installieren Sie Docker und die Läufer

Was auf jedem System installiert werden muss
ProgrammmacOSWindowsLinux
DockerDocker Desktop, OrbStack oder ColimaDocker DesktopDocker Engine oder Docker Desktop
handeln (GitHub Actions)brew install actwinget install nektos.actDas Installationsskript auf nektosact.com
gitlab-ci-local (GitLab CI)npm install -g gitlab-ci-localDie EXE-Datei aus ihren GitHub-Versionen in einem Ordner auf PATHnpm install -g gitlab-ci-local

gitlab-ci-local benötigt Node.js 18 oder höher, wenn es mit npm installiert wird. GitTree sucht nur nach den Programmen auf PATH; Sie werden nie zur Überprüfung ausgeführt und können daher nicht feststellen, ob die Docker-Engine gestartet ist.

Die Beispieldateien

Das GitHub Actions-Beispiel führt einen build-Job und dann einen test-Job auf ubuntu-latest aus. Bei der ersten Ausführung fragt act, welches Läuferbild verwendet werden soll. Medium eignet sich für die meisten Projekte. Das GitLab CI-Beispiel führt dieselben zwei Jobs in alpine-Containern aus. Ersetzen Sie die echo-Zeilen durch Ihre eigenen Befehle und übergeben Sie die Datei, wenn sie fertig ist. Wenn sich das Repository auf GitHub oder GitLab befindet, führt dieser Host auch die Datei aus.

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Build
        run: npm ci && npm run build
  test:
    runs-on: ubuntu-latest
    needs: build
    steps:
      - uses: actions/checkout@v4
      - name: Test
        run: npm test

Bitbucket Pipelines und Azure Pipelines

Es gibt keinen unterstützten lokalen Runner für bitbucket-pipelines.yml oder azure-pipelines.yml, daher wird in diesen Dateien No local runner angezeigt. Um dieselben Schritte auf Ihrem Computer auszuführen, fügen Sie das Beispiel GitHub Actions oder GitLab CI hinzu und kopieren Sie Ihre Befehle hinein. Die gehostete Pipeline wird weiterhin aus ihrer eigenen Datei ausgeführt.

Wie sich eine lokale Ausführung von Ihrem Host unterscheidet

  • Auf dem Host festgelegte Geheimnisse und Variablen sind nicht verfügbar. Geben Sie diejenigen, die ein Job benötigt, selbst an den Läufer weiter.
  • act führt standardmäßig durch Push ausgelöste Jobs aus. Wählen Sie ein Job aus, um es unabhängig von seinem Auslöser auszuführen.
  • Einschließt, Vorlagen und wiederverwendbare Workflows werden nicht aufgelöst, wenn GitTree Jobs auflistet; Der Läufer löst sie auf, wenn er rennt.
  • Container können Ihr Netzwerk erreichen und die von Ihnen angegebenen Anmeldeinformationen verwenden.

Wenn etwas schief geht

„Auf PATH wurde kein sicherer nativer Läufer gefunden. Installieren Sie ihn außerhalb des Repositorys und aktualisieren Sie ihn dann.“

Installieren Sie act oder gitlab-ci-local in einem Ordner auf PATH, der sich nicht im Repository befindet, und drücken Sie dann Check again oder Refresh. Beenden Sie am macOS und öffnen Sie GitTree erneut, wenn Sie PATH in Ihrem Shell-Profil geändert haben.

„Diese Anbieterkonfiguration hat keinen unterstützten lokalen Läufer.“

Die Datei ist eine Bitbucket- oder Azure-Pipeline. Fügen Sie ein GitHub Actions- oder GitLab CI-Beispiel hinzu und kopieren Sie die Schritte hinein.

„Vertrauen Sie diesem Repository, bevor Sie einen lokalen Pipeline-Befehl vorbereiten.“

Vertrauen Sie zuerst dem Repository (Repository-Vertrauensstellung) und bereiten Sie dann den Befehl erneut vor.

Das Terminal meldet, dass keine Verbindung zum Docker-Daemon hergestellt werden kann.

Starten Sie den Dienst Docker Desktop, OrbStack, Colima oder den Dienst Docker, warten Sie, bis er ausgeführt wird, und drücken Sie dann erneut die Eingabetaste für den Befehl.

Fragen

Benötigen lokale Pipelines GitTree Pro oder ein Hosting-Konto?

Nein. Lokale Pipelines sind Teil des kostenlosen Plans und lesen nur die Dateien Ihres Repositorys. Gehostete CI/CD-Läufe, Wiederholungen und Genehmigungen sind Teil von Pro.

Führt GitTree die Pipeline für mich aus?

Nein. GitTree bereitet den Befehl vor und gibt ihn in ein Terminal ein; Sie drücken die Eingabetaste. Nichts läuft, bevor Sie es tun.