Einführung
Sie können eine Aktion schreiben, um Benutzern den Zugriff auf Ihre Server über eine auf GitHub Actions Runnern konfigurierte CLI-Umgebung zu ermöglichen.
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.
- Arbeiten Sie mit von GitHub gehosteten und selbstgehosteten Runnern
- Community-Tools nach Möglichkeit 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 finden Sie unter Verwalten benutzerdefinierter Aktionen.
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/toolkiteine Reihe von Paketen bereit, mit denen Sie Aktionen erstellen können. 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).
Weiterführende Lektüre
Dieses Muster wird in mehreren Aktionen verwendet. Weitere Beispiele findest du hier: