Hinweis: GitHub-gehostete Runner werden auf GitHub Enterprise Server derzeit nicht 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
-
Navigiere auf GitHub.com zu einem Repository, das du zur Ausführung eines GitHub Actions-Workflows verwenden kannst.
-
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
-
Lade das Toolcacheartefakt aus der Workflowausführung herunter. Weitere Informationen zum Herunterladen von Artefakten findest du unter Herunterladen von Workflowartefakten.
-
Ü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.