Skip to main content

Einrichten des Toolcaches auf selbstgehosteten Runnern ohne Internetzugriff

Um die enthaltenen actions/setup-Aktionen auf selbstgehosteten Runnern ohne Internetzugriff zu verwenden, musst du zunächst den Toolcache des Runners für deine Workflows auffüllen.

Note

Auf GitHub gehostete Runner werden aktuell nicht auf GitHub Enterprise Server unterstützt. Weitere Informationen zur geplanten zukünftigen Unterstützung findest Du in der GitHub public roadmap.

Informationen zu den enthaltenen Setupaktionen und dem Runnertoolcache

GitHub Actions auf GitHub Enterprise Server sind für die Arbeit in Umgebungen ohne vollständigen Internetzugriff konzipiert. Standardmäßig können Workflows keine Aktionen aus GitHub.com und GitHub Marketplace verwenden.

Die meisten offiziellen von GitHub erstellten Aktionen werden automatisch mit GitHub Enterprise Server kombiniert. Selbstgehostete Runner ohne Internetzugang müssen jedoch erst konfiguriert werden, bevor sie die enthaltenen actions/setup-LANGUAGE-Aktionen wie z. B. setup-node nutzen können.

Die actions/setup-LANGUAGE-Aktionen benötigen normalerweise Internetzugriff, um die erforderlichen Umgebungsbinärdateien in den Toolcache des Runners herunterzuladen. Selbstgehostete Runner ohne Internetzugriff können die Binärdateien nicht herunterladen, sodass du den Toolcache auf dem Runner manuell auffüllen musst.

Du kannst den Runnertoolcache auffüllen, indem du einen GitHub Actions-Workflow auf GitHub.com ausführst, der einen auf GitHub gehosteten Toolcache des Runners als Artefakt hochlädt, das du dann auf deinen nicht mit dem Internet verbundenen, selbstgehosteten Runner übertragen und extrahieren kannst.

Note

Du kannst nur einen auf GitHub gehosteten Toolcache für einen selbstgehosteten Runner verwenden, der über ein identisches Betriebssystem und eine identische Architektur verfügt. Wenn du beispielsweise einen GitHub-gehosteten Runner für ubuntu-22.04 verwendest, um einen Toolcache zu generieren, muss dein selbstgehosteter Runner ein 64-Bit-Computer mit Ubuntu 22.04 sein. Weitere Informationen zu auf GitHub gehosteten Runnern findest du unter Verwenden von auf GitHub gehosteten Runnern.

Voraussetzungen

  • Du musst wissen, welche Entwicklungsumgebungen deine selbstgehosteten Runner benötigen. Im folgenden Beispiel wird veranschaulicht, wie ein Toolcache für die setup-node-Aktion mit den Node.js-Versionen 14 und 16 aufgefüllt wird.
  • Greife auf ein Repository auf GitHub.com zu, das du zur Ausführung eines Workflows verwenden kannst.
  • Greife auf das Dateisystem deines selbstgehosteten Runners zu, um den Ordner des Toolcaches aufzufüllen.

Auffüllen des Toolcaches für einen selbstgehosteten Runner

  1. Navigiere auf GitHub.com zu einem Repository, das du zur Ausführung eines GitHub Actions-Workflows verwenden kannst.

  2. Erstelle eine neue Workflowdatei im Ordner des Repositorys .github/workflows, die ein Artefakt hochlädt, das den auf GitHub gehosteten Toolcache des Runners enthält.

    Das folgende Beispiel zeigt einen Workflow, der den Toolcache für eine Ubuntu 22.04-Umgebung hochlädt, wobei die Aktion setup-node mit den Node.js-Versionen 14 und 16 verwendet wird.

    name: Upload Node.js 14 and 16 tool cache
    on: push
    jobs:
      upload_tool_cache:
        runs-on: ubuntu-22.04
        steps:
          - name: Clear any existing tool cache
            run: |
              mv "${{ runner.tool_cache }}" "${{ runner.tool_cache }}.old"
              mkdir -p "${{ runner.tool_cache }}"
          - name: Setup Node 14
            uses: actions/setup-node@v4
            with:
              node-version: 14.x
          - name: Setup Node 16
            uses: actions/setup-node@v4
            with:
              node-version: 16.x
          - name: Archive tool cache
            run: |
              cd "${{ runner.tool_cache }}"
              tar -czf tool_cache.tar.gz *
          - name: Upload tool cache artifact
            uses: actions/upload-artifact@v3
            with:
              path: ${{runner.tool_cache}}/tool_cache.tar.gz
    
  3. Lade das Toolcacheartefakt aus der Workflowausführung herunter. Weitere Informationen zum Herunterladen von Artefakten findest du unter Herunterladen von Workflowartefakten.

  4. Übertrage das Toolcacheartefakt in deinen selbstgehosteten Runner, und extrahiere es in das lokale Toolcacheverzeichnis. Das Standardverzeichnis für den Toolcache ist RUNNER_DIR/_work/_tool. Wenn der Runner noch keine Aufträge verarbeitet hat, musst du möglicherweise die _work/_tool-Verzeichnisse erstellen.

    Nach dem Extrahieren des Toolcacheartefaktes, das im obigen Beispiel hochgeladen wurde, sollte eine Verzeichnisstruktur auf deinem selbstgehosteten Runner vorhanden sein, die dem folgenden Beispiel ähnelt:

    RUNNER_DIR
    ├── ...
    └── _work
        ├── ...
        └── _tool
            └── node
                ├── 14.21.3
                │   └── ...
                └── 16.16.0
                    └── ...
    

Dein selbstgehosteter Runner ohne Internetzugriff sollte jetzt in der Lage sein, die setup-node-Aktion zu verwenden. Wenn Probleme auftreten, stelle sicher, dass du den richtigen Toolcache für deine Workflows aufgefüllt hast. Wenn du beispielsweise die setup-python-Aktion verwenden musst, fülle den Toolcache mit der Python-Umgebung auf, die du verwenden möchtest.