Benutzerdefinierte GitHub Actions entwickeln
Lernen Sie, eigene wiederverwendbare Actions mit JavaScript oder Docker zu erstellen, um die Funktionalität von GitHub Actions zu erweitern.
Benutzerdefinierte GitHub Actions entwickeln ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
GitHub Actions erweitern
Was tun Sie, wenn Sie in Ihrem Workflow eine bestimmte Aufgabe benötigen, die GitHub Actions nicht standardmäßig anbietet? Oder wenn Sie komplexe Logik wiederverwenden möchten?
Mit Custom Actions können Sie eigene, wiederverwendbare Tools für Workflows erstellen. Sie sind wie kleine Programme, die eine bestimmte, auf Ihre Anforderungen zugeschnittene Aufgabe ausführen.
Die Vorteile der Anpassbarkeit
Custom Actions bieten Ihren CI/CD-Pipelines mehrere Vorteile:
- Wiederverwendbarkeit: Einmal schreiben und in vielen Workflows und Repositorys verwenden.
- Standardisierung: Sorgen Sie für einheitliche Prozesse in Ihrer Organisation.
- Kapselung: Verbergen Sie komplexe Logik hinter einer einfachen Schnittstelle.
- Integration: Interagieren Sie mit bestimmten internen Tools oder APIs.
JavaScript oder Docker?
GitHub Actions unterstützt zwei grundlegende Möglichkeiten zum Erstellen von Custom Actions:
- JavaScript Actions: Diese Actions werden in JavaScript (oder TypeScript) geschrieben und direkt auf der Runner-Maschine ausgeführt. Sie sind schnell und eignen sich gut für einfache Aufgaben.
- Docker-Container-Actions: Kapseln Sie Ihre Umgebung und Ihren Code in einem Docker-Image. Sie eignen sich ideal für Actions, die bestimmte Abhängigkeiten oder Programmiersprachen benötigen.
Ihre Action definieren
Jede Custom Action benötigt eine Datei action.yml im Stammverzeichnis. Diese YAML-Datei fungiert als Manifest und informiert GitHub Actions über Ihre Action:
nameunddescription: Was Ihre Action tut.inputs: Daten, die Ihre Action entgegennimmt.outputs: Daten, die Ihre Action erzeugt.runs: Wie Ihre Action ausgeführt wird (z. B. als JavaScript-Datei oder Docker-Image).
Einfaches Beispiel für eine JS-Action
Sehen wir uns eine einfache JavaScript-Action an. Sie benötigen eine Datei action.yml und eine Datei index.js. Die Datei action.yml definiert die Metadaten und die Ausführungsumgebung der Action.
# action.yml
name: 'Hello World Action'
description: 'Greets a person using a custom message'
inputs:
who-to-greet:
description: 'Who to greet'
required: true
default: 'World'
outputs:
greeting-message:
description: 'The greeting message generated'
runs:
using: 'node16'
main: 'index.js'JavaScript schreiben
Die Datei index.js enthält die eigentliche Logik. Wir verwenden das Toolkit @actions/core, um Eingaben abzurufen und Ausgaben festzulegen.
Führen Sie dieses einfache JavaScript-Snippet aus, um konzeptionell zu sehen, wie Eingaben und Ausgaben funktionieren – auch außerhalb eines vollständigen Workflows:
// index.js (simplified for demonstration)
const core = require('@actions/core');
try {
const name = core.getInput('who-to-greet');
const message = `Hello, ${name}!`;
console.log(message);
core.setOutput('greeting-message', message);
} catch (error) {
core.setFailed(error.message);
}
// A standalone runnable example to demonstrate core logic
function runSimpleGreeting(inputName) {
const name = inputName || 'World';
const message = `Hello from runnable JS, ${name}!`;
return message;
}
console.log(runSimpleGreeting('CoddyKit'));
console.log(runSimpleGreeting());Grundlagen von Docker-Actions
Für komplexere Umgebungen sind Docker-Container-Actions besonders leistungsfähig. Sie enthalten eine Dockerfile, die das Container-Image definiert und alle erforderlichen Abhängigkeiten bündelt.
Ihre action.yml verweist auf dieses Image und weist GitHub Actions an, es zu erstellen und auszuführen.
# action.yml for Docker action
name: 'Docker Hello World'
description: 'Greets a name from within a Docker container'
inputs:
who-to-greet:
description: 'Who to greet'
required: true
default: 'Docker'
outputs:
greeting-message:
description: 'The greeting message from Docker'
runs:
using: 'docker'
image: 'Dockerfile'Die Umgebung Ihrer Action
Die Dockerfile legt das Basis-Image fest, installiert Abhängigkeiten und definiert den Einstiegspunkt Ihrer Action. So wird sichergestellt, dass Ihre Action in einer konsistenten, kontrollierten Umgebung ausgeführt wird.
# Dockerfile
FROM alpine:3.16
LABEL "com.github.actions.name"="Docker Hello World"
LABEL "com.github.actions.description"="Greets a name from within a Docker container"
LABEL "com.github.actions.icon"="globe"
LABEL "com.github.actions.color"="blue"
# Copy your script into the container
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]Docker-Actions skripten
Im Docker-Container empfängt Ihr Einstiegspunkt-Skript (z. B. entrypoint.sh) Eingaben als Umgebungsvariablen (mit dem Präfix INPUT_). Es legt Ausgaben fest, indem es sie in die Datei schreibt, die durch die Umgebungsvariable $GITHUB_OUTPUT angegeben wird.
#!/bin/sh -l
# entrypoint.sh
echo "Hello from Docker, $INPUT_WHO_TO_GREET!"
GREETING="Hello from Docker, $INPUT_WHO_TO_GREET!"
echo "greeting-message=$GREETING" >> "$GITHUB_OUTPUT"Best Practices für Actions
Berücksichtigen Sie bei der Entwicklung von robusten und wartbaren Custom Actions die folgenden Empfehlungen:
- Versionierung: Verwenden Sie für Stabilität semantische Versionierung (z. B.
v1,v2). - Tests: Testen Sie Ihre Action gründlich lokal und in Workflows.
- Fehlerbehandlung: Implementieren Sie klare Fehlermeldungen und ein kontrolliertes Fehlerverhalten.
- Sicherheit: Bereinigen Sie Eingaben und vermeiden Sie die Offenlegung vertraulicher Daten.
- Dokumentation: Stellen Sie in Ihrer README klare Anweisungen zur Verwendung bereit.
Überprüfung des Action-Typs
Sie müssen eine benutzerdefinierte GitHub Action erstellen, die eine bestimmte Python-Bibliothek benötigt, die auf den standardmäßigen GitHub-Actions-Runnern nicht vorinstalliert ist. Welcher Action-Typ eignet sich im Allgemeinen am besten für dieses Szenario?
Zusammenfassung: Custom Actions
Wir haben untersucht, wie Sie GitHub Actions durch eigene Custom Actions erweitern können. Sie haben die beiden Haupttypen kennengelernt: JavaScript Actions und Docker-Container-Actions sowie die entscheidende Rolle der Datei action.yml. Außerdem haben wir behandelt, wie Eingaben, Ausgaben und die zentrale Logik für beide Typen definiert werden, sowie Best Practices für die Entwicklung.
Custom Actions sind leistungsfähig und fördern die Wiederverwendbarkeit und Standardisierung Ihrer CI/CD-Pipelines!
Häufig gestellte Fragen
Ist die Lektion „Benutzerdefinierte GitHub Actions entwickeln“ kostenlos?
Ja — der vollständige Text von „Benutzerdefinierte GitHub Actions entwickeln“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Benutzerdefinierte GitHub Actions entwickeln“?
Lernen Sie, eigene wiederverwendbare Actions mit JavaScript oder Docker zu erstellen, um die Funktionalität von GitHub Actions zu erweitern. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um DevOps Bootcamp zu starten?
Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Benutzerdefinierte GitHub Actions entwickeln“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?
Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Benutzerdefinierte GitHub Actions entwickeln
- Self-Hosted Runner für On-Premises
- Integration in Enterprise-Systeme
- Composite Actions und Veröffentlichung im Marketplace