@actions/download-artifact
Warnung
Die Einstellung von actions/download-artifact@v3 ist für den 30. November 2024 geplant. Erfahren Sie mehr. Ebenso ist die Einstellung von v1/v2 am 30. Juni 2024 geplant. Bitte aktualisieren Sie Ihren Workflow, um Version 4 der Artefaktaktionen zu verwenden. Diese Einstellung hat keine Auswirkungen auf bestehende Versionen von GitHub Enterprise Server, die von Kunden verwendet werden.
Laden Sie Aktionsartefakte aus Ihren Workflow-Ausführungen herunter. Intern unterstützt durch das @actions/artifact-Paket.
Siehe auch Upload-Artefakt.
@actions/download-artifact
Berechtigungsverlust
Laden Sie ein einzelnes Artefakt herunter
Laden Sie alle Artefakte herunter
Laden Sie mehrere (gefilterte) Artefakte in dasselbe Verzeichnis herunter
Laden Sie Artefakte aus anderen Workflow-Läufen oder Repositorys herunter
Eingaben
Ausgänge
Verbesserungen
Breaking Changes
v4 – Was ist neu?
Verwendung
Beispiele
Einschränkungen
Wichtig
download-artifact@v4+ wird derzeit noch nicht auf GHES unterstützt. Wenn Sie GHES verwenden, müssen Sie v3 verwenden.
Die Veröffentlichung von upload-artifact@v4 und download-artifact@v4 sind wesentliche Änderungen an der Backend-Architektur von Artifacts. Sie verfügen über zahlreiche Leistungs- und Verhaltensverbesserungen.
Weitere Informationen finden Sie in der @actions/artifact
-Dokumentation.
Downloads sind deutlich schneller, im schlimmsten Fall beträgt die Verbesserung mehr als 90 %.
Artefakte können von anderen Workflow-Läufen und Repositorys heruntergeladen werden, wenn sie mit einem PAT bereitgestellt werden.
Bei selbst gehosteten Läufern sind möglicherweise zusätzliche Firewall-Regeln erforderlich.
Das Herunterladen von Artefakten, die mit action/upload-artifact@v3
und niedriger erstellt wurden, wird nicht unterstützt.
Hilfe bei Breaking Changes finden Sie unter MIGRATION.md.
- verwendet: actions/download-artifact@v4 mit: # Name des herunterzuladenden Artefakts. # Wenn nicht angegeben, werden alle Artefakte für den Lauf heruntergeladen. # Optional. Name: # Zielpfad. Unterstützt die grundlegende Tilde-Erweiterung. # Optional. Der Standardwert ist $GITHUB_WORKSPACE path: # Ein Glob-Muster für die Artefakte, die heruntergeladen werden sollen. # Wird ignoriert, wenn ein Name angegeben ist. # Optional. Muster: # Wenn mehrere Artefakte übereinstimmen, ändert sich das Verhalten der Zielverzeichnisse. # Wenn „true“, befinden sich die heruntergeladenen Artefakte in demselben Verzeichnis, das durch den Pfad angegeben wird. # Bei „false“ werden die heruntergeladenen Artefakte in einzelne benannte Verzeichnisse innerhalb des angegebenen Pfads extrahiert. # Optional. Der Standardwert ist „false“. merge-multiple: # Das GitHub-Token, das zur Authentifizierung mit der GitHub-API verwendet wird. # Dies ist erforderlich, wenn Artefakte aus einem anderen Repository oder aus einer anderen Workflow-Ausführung heruntergeladen werden. # Optional. Wenn keine Angabe erfolgt, lädt die Aktion Artefakte aus dem aktuellen Repository und der aktuellen Workflow-Ausführung herunter. github-token: # Der Repository-Eigentümer und der Repository-Name, verbunden durch „/“. # Wenn github-token angegeben ist, ist dies das Repository, aus dem Artefakte heruntergeladen werden. # Optional. Der Standardwert ist ${{ github.repository }} Repository: # Die ID des Workflowlaufs, von dem das gewünschte Download-Artefakt hochgeladen wurde. # Wenn github-token angegeben ist, ist dies der Lauf, von dem Artefakte heruntergeladen werden. # Optional. Der Standardwert ist ${{ github.run_id }} run-id:
Name | Beschreibung | Beispiel |
---|---|---|
download-path | Absoluter Pfad, in den die Artefakte heruntergeladen wurden | /tmp/my/download/path |
In das aktuelle Arbeitsverzeichnis herunterladen ( $GITHUB_WORKSPACE
):
Schritte: - verwendet: actions/download-artifact@v4 mit: Name: my-artifact- name: Struktur der heruntergeladenen Dateien anzeigen, ausführen: ls -R
In ein bestimmtes Verzeichnis herunterladen (unterstützt auch ~
-Erweiterung):
Schritte: - verwendet: actions/download-artifact@v4 mit: Name: my-artifact Pfad: Ihr/Ziel/Verzeichnis. Name: Struktur der heruntergeladenen Dateien anzeigen. Ausführen: ls -R Ihr/Ziel/Verzeichnis
Wenn der Eingabeparameter name
nicht angegeben wird, werden alle Artefakte heruntergeladen. Um zwischen heruntergeladenen Artefakten zu unterscheiden, wird standardmäßig für jedes einzelne Artefakt ein Verzeichnis erstellt, das durch den Artefaktnamen gekennzeichnet ist. Dieses Verhalten kann mit dem Eingabeparameter merge-multiple
geändert werden.
Wenn beispielsweise zwei Artefakte Artifact-A
und Artifact-B
vorhanden sind und das Verzeichnis etc/usr/artifacts/
lautet, sieht die Verzeichnisstruktur wie folgt aus:
etc/usr/artifacts/ Artifact-A/ ... contents of Artifact-A Artifact-B/ ... contents of Artifact-B
Laden Sie alle Artefakte in das aktuelle Arbeitsverzeichnis herunter:
Schritte: - verwendet: actions/download-artifact@v4- Name: Struktur der heruntergeladenen Dateien anzeigen, ausführen: ls -R
Laden Sie alle Artefakte in ein bestimmtes Verzeichnis herunter:
Schritte: - verwendet: actions/download-artifact@v4 mit: Pfad: Pfad/zu/Artefakte- Name: Struktur der heruntergeladenen Dateien anzeigen, ausführen: ls -R Pfad/zu/Artefakte
Um sie in dasselbe Verzeichnis herunterzuladen:
Schritte: - verwendet: actions/download-artifact@v4 mit: Pfad: Pfad/zu/Artefakte merge-multiple: true-name: Struktur der heruntergeladenen Dateien anzeigen Ausführen: ls -R Pfad/zu/Artefakte
Was zur Folge hat:
path/to/artifacts/ ... contents of Artifact-A ... contents of Artifact-B
In mehreren Arch/OS-Szenarien können Artefakte in verschiedenen Jobs erstellt werden. Um alle Artefakte in dasselbe Verzeichnis herunterzuladen (oder einem Glob-Muster zuzuordnen), können Sie die Eingaben pattern
und merge-multiple
verwenden.
Jobs: Upload: Strategie: Matrix: Läuft auf: [ubuntu-latest, macos-latest, Windows-latest] Läuft auf: ${{ Matrix.runs-on }} Schritte: - Name: Datei erstellen, ausführen: echo „Hallo von ${{ Matrix.runs-on }}“ > Datei-${{ Matrix.runs-on }}.txt - Name: Artefakt hochladen verwendet: actions/upload-artifact@v4 mit: Name: my-artifact-${{matrix.runs-on }} Pfad: file-${{matrix.runs-on }}.txt herunterladen: Bedarf: Upload läuft auf: Ubuntu-neueste Schritte: - Name: Alle Artefakte herunterladen verwendet: actions/download-artifact@v4 mit: Pfad: my-artifact Muster: my-artifact-* merge-multiple: true - Führen Sie Folgendes aus: ls -R my-artifact
Daraus ergibt sich ein Verzeichnis wie folgt:
my-artifact/ file-macos-latest.txt file-ubuntu-latest.txt file-windows-latest.txt
Es kann nützlich sein, Artefakte aus anderen Workflow-Läufen oder sogar anderen Repositorys herunterzuladen. Standardmäßig sind die Berechtigungen so begrenzt, dass Artefakte nur innerhalb der aktuellen Workflow-Ausführung heruntergeladen werden können. Um die Berechtigungen für dieses Szenario zu erhöhen, können Sie ein github-token
zusammen mit anderen Repository- und Ausführungskennungen angeben:
Schritte: – verwendet: actions/download-artifact@v4 mit: Name: my-other-artifact github-token: ${{ Secrets.GH_PAT }} # Token mit actions:read-Berechtigungen für das Ziel-Repo-Repository: actions/toolkit run-id: 1234
Dateiberechtigungen werden beim Artefakt-Upload nicht beibehalten. Alle Verzeichnisse haben 755
und alle Dateien haben 644
. Wenn Sie beispielsweise eine Datei mit chmod
ausführbar machen und diese Datei dann hochladen, ist nach dem Herunterladen nicht mehr garantiert, dass die Datei als ausführbare Datei festgelegt ist.
Wenn Sie Berechtigungen beibehalten müssen, können Sie alle Ihre Dateien vor dem Hochladen des Artefakts zusammen tar
. Nach dem Download behält die tar
Datei die Dateiberechtigungen und die Groß-/Kleinschreibung bei.
- Name: 'Tar-Dateien' ausführen: tar -cvf my_files.tar /path/to/my/directory- name: 'Artifact hochladen' verwendet: actions/upload-artifact@v4 mit: Name: my-artifact Pfad: my_files. Teer