Anstatt Shell-Skripte zum Installieren von Tools zu schreiben, können Sie GitHub Actions direkt in den AbschnittenDocumentation Index
Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
Use this file to discover all available pages before exploring further.
initialize oder maintenance Ihres Blueprints angeben. Devin lädt die Action während des Snapshot-Builds herunter und führt sie aus – genauso wie die CI-Runner von GitHub Actions Actionschritte ausführen.
Das ist besonders nützlich für Actions zum Einrichten von Sprachen wie setup-python, setup-node und setup-go, die Versionsverwaltung und PATH-Konfiguration automatisch übernehmen.
Syntax
uses-Schritt hinzu:
| Feld | Typ | Beschreibung |
|---|---|---|
name | string (optional) | Menschenlesbare Bezeichnung, die in Build-Logs angezeigt wird |
uses | string | GitHub Action-Referenz (siehe Format unten) |
with | map (optional) | Eingabeparameter, die an die Action übergeben werden |
env | map (optional) | Zusätzliche Umgebungsvariablen für den Schritt |
Ein Schritt muss entweder
run (ein Shell-Befehl) oder uses (eine Action) angeben, nicht beides.Format für Aktionsreferenzen
github.com/ als auch das Suffix @<ref> sind erforderlich. Die Ref ist in der Regel ein Versions-Tag wie v5.
Beispiele:
| Referenz | Worauf sie verweist |
|---|---|
github.com/actions/setup-python@v5 | actions/setup-python mit Tag v5 |
github.com/actions/setup-node@v4 | actions/setup-node mit Tag v4 |
github.com/gradle/actions/setup-gradle@v4 | Repo gradle/actions, Unterverzeichnis setup-gradle, Tag v4 |
Eingaben übergeben
with, um Eingaben an die Action zu übergeben. Alle Werte werden als Strings behandelt, entsprechend dem Verhalten von GitHub Actions:
Umgebungsvariablen festlegen
env, um Umgebungsvariablen festzulegen, die auf einen einzelnen Aktionsschritt beschränkt sind:
GITHUB_ENV oder GITHUB_PATH) werden automatisch an die nachfolgenden Schritte im Blueprint weitergegeben.
Beispiele
Python-Projekt mit einer bestimmten Python-Version
Mehrsprachiges Projekt
Actions mit Shell-Befehlen kombinieren
Java-Projekt mit Gradle
Actions vs. Shell-Skripte
- Mit GitHub Actions
- Entsprechendes Shell-Skript
Wie es funktioniert
uses-Schritt stößt:
- Lädt das Action-Repo herunter (flacher Klon der angepinnten Ref)
- Liest die
action.yml-Metadaten der Action, um Laufzeit und Einstiegspunkte zu bestimmen - Erstellt die Ausführungsumgebung mit den Variablen
INPUT_*,GITHUB_*undRUNNER_* - Führt den
pre-Schritt der Action aus (falls definiert) und anschließend denmain-Einstiegspunkt - Überträgt Nebeneffekte — alle Einträge, die die Action in
GITHUB_PATHoderGITHUB_ENVschreibt, werden auf nachfolgende Blueprint-Schritte angewendet
Actions werden außerhalb eines echten GitHub-Workflows ausgeführt. Kontextvariablen wie
github.repository werden mit Platzhalterwerten befüllt. Actions, die Live-Zugriff auf die GitHub-API erfordern (z. B. Kommentare zu Pull Requests oder das Erstellen von Releases), funktionieren in Blueprints nicht.Einschränkungen
- Nur Node.js-Actions — Unterstützt werden nur GitHub Actions, die eine Node.js-Laufzeit (
node16,node20,node24) verwenden. Docker-basierte und komposite Actions werden nicht unterstützt. - Kein
post-Lebenszyklus — Devin führt die Schrittepreundmainaus, überspringt aberpost-Bereinigungsschritte, da Builds in kurzlebigen VMs ausgeführt werden. - GitHub-Kontext als Platzhalter — Actions, die auf GitHub-API-Aufrufe, Workflow-Ereignisdaten oder Repository-Kontext angewiesen sind, funktionieren möglicherweise nicht korrekt, da diese Werte in der Build-Umgebung nur Platzhalter sind.
- Versionen anpinnen — Verwenden Sie für reproduzierbare Builds immer ein bestimmtes Versions-Tag (z. B.
@v5) statt eines Branchnamens.
