Einführung
Du kannst eine Aktion schreiben, um Benutzern über eine konfigurierte CLI-Umgebung auf GitHub Actions-Runnern den Zugriff auf deine Server zu gewähren.
Deine Aktion sollte folgende Vorgaben erfüllen:
- Sie sollte Benutzer*innen die einfache Angabe der zu installierenden CLI-Version ermöglichen.
- Sie sollte mehrere Betriebssysteme unterstützen.
- Sie sollte effizient ausgeführt werden, um Laufzeiten und zugehörige Kosten zu minimieren.
- Sie sollte sowohl auf von GitHub Enterprise Cloud gehosteten als auch auf selbstgehosteten Runnern funktionieren.
- Sie sollte nach Möglichkeit Communitytools nutzen.
In diesem Artikel wird veranschaulicht, wie eine Aktion geschrieben wird, die eine bestimmte Version deiner CLI abruft, installiert, dem Pfad hinzufügt und (optional) zwischenspeichert. Diese Art von Aktion (eine Aktion zum Einrichten eines Tools) wird häufig mit setup-$TOOL
benannt.
Voraussetzungen
Du solltest wissen, wie eine benutzerdefinierte Aktion geschrieben wird. Weitere Informationen findest du unter Informationen zu benutzerdefinierten Aktionen. Eine ausführlichere Anleitung zum Schreiben einer benutzerdefinierten Aktion findest du unter Creating a JavaScript action (Erstellen einer JavaScript-Aktion).
Beispiel
Das folgende Skript veranschaulicht, wie du eine vom Benutzer angegebene Version als Eingabe abfragst, die entsprechende Version deiner CLI herunterlädst und extrahierst und die CLI dann dem Pfad hinzufügst.
GitHub stellt actions/toolkit
bereit. Dabei handelt es sich um eine Reihe von Paketen, die dir beim Erstellen von Aktionen helfen. In diesem Beispiel werden die Pakete actions/core
und actions/tool-cache
verwendet.
const core = require('@actions/core'); const tc = require('@actions/tool-cache'); async function setup() { // Get version of tool to be installed const version = core.getInput('version'); // Download the specific version of the tool, e.g. as a tarball const pathToTarball = await tc.downloadTool(getDownloadURL()); // Extract the tarball onto the runner const pathToCLI = await tc.extractTar(pathToTarball); // Expose the tool by adding it to the PATH core.addPath(pathToCLI) } module.exports = setup
const core = require('@actions/core');
const tc = require('@actions/tool-cache');
async function setup() {
// Get version of tool to be installed
const version = core.getInput('version');
// Download the specific version of the tool, e.g. as a tarball
const pathToTarball = await tc.downloadTool(getDownloadURL());
// Extract the tarball onto the runner
const pathToCLI = await tc.extractTar(pathToTarball);
// Expose the tool by adding it to the PATH
core.addPath(pathToCLI)
}
module.exports = setup
Um dieses Skript zu verwenden, ersetze getDownloadURL
durch eine Funktion, die deine CLI herunterlädt. Du musst auch eine Metadatendatei für Aktionen erstellen (action.yml
), die eine version
-Eingabe akzeptiert und dieses Skript ausführt. Ausführliche Informationen zum Erstellen einer Aktion findest du unter Creating a JavaScript action (Erstellen einer JavaScript-Aktion).
Weitere Informationen
Dieses Muster wird in mehreren Aktionen verwendet. Weitere Beispiele findest du hier: