@actions/download-artifact
Warnung
actions/download-artifact@v3 wird voraussichtlich am 30. November 2024 eingestellt. 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
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.
action/upload-artifact@v3
und niedriger erstellt wurden, wird nicht unterstützt.Hilfe bei Breaking Changes finden Sie unter MIGRATION.md.
- uses : actions/download-artifact@v4
with :
# Name of the artifact to download.
# If unspecified, all artifacts for the run are downloaded.
# Optional.
name :
# Destination path. Supports basic tilde expansion.
# Optional. Default is $GITHUB_WORKSPACE
path :
# A glob pattern to the artifacts that should be downloaded.
# Ignored if name is specified.
# Optional.
pattern :
# When multiple artifacts are matched, this changes the behavior of the destination directories.
# If true, the downloaded artifacts will be in the same directory specified by path.
# If false, the downloaded artifacts will be extracted into individual named directories within the specified path.
# Optional. Default is 'false'
merge-multiple :
# The GitHub token used to authenticate with the GitHub API.
# This is required when downloading artifacts from a different repository or from a different workflow run.
# Optional. If unspecified, the action will download artifacts from the current repo and the current workflow run.
github-token :
# The repository owner and the repository name joined together by "/".
# If github-token is specified, this is the repository that artifacts will be downloaded from.
# Optional. Default is ${{ github.repository }}
repository :
# The id of the workflow run where the desired download artifact was uploaded from.
# If github-token is specified, this is the run that artifacts will be downloaded from.
# Optional. Default is ${{ 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
):
steps :
- uses : actions/download-artifact@v4
with :
name : my-artifact
- name : Display structure of downloaded files
run : ls -R
In ein bestimmtes Verzeichnis herunterladen (unterstützt auch ~
-Erweiterung):
steps :
- uses : actions/download-artifact@v4
with :
name : my-artifact
path : your/destination/dir
- name : Display structure of downloaded files
run : ls -R your/destination/dir
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:
steps :
- uses : actions/download-artifact@v4
- name : Display structure of downloaded files
run : ls -R
Laden Sie alle Artefakte in ein bestimmtes Verzeichnis herunter:
steps :
- uses : actions/download-artifact@v4
with :
path : path/to/artifacts
- name : Display structure of downloaded files
run : ls -R path/to/artifacts
Um sie in dasselbe Verzeichnis herunterzuladen:
steps :
- uses : actions/download-artifact@v4
with :
path : path/to/artifacts
merge-multiple : true
- name : Display structure of downloaded files
run : ls -R path/to/artifacts
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 :
strategy :
matrix :
runs-on : [ubuntu-latest, macos-latest, windows-latest]
runs-on : ${{ matrix.runs-on }}
steps :
- name : Create a File
run : echo "hello from ${{ matrix.runs-on }}" > file-${{ matrix.runs-on }}.txt
- name : Upload Artifact
uses : actions/upload-artifact@v4
with :
name : my-artifact-${{ matrix.runs-on }}
path : file-${{ matrix.runs-on }}.txt
download :
needs : upload
runs-on : ubuntu-latest
steps :
- name : Download All Artifacts
uses : actions/download-artifact@v4
with :
path : my-artifact
pattern : my-artifact-*
merge-multiple : true
- run : 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:
steps :
- uses : actions/download-artifact@v4
with :
name : my-other-artifact
github-token : ${{ secrets.GH_PAT }} # token with actions:read permissions on target repo
repository : actions/toolkit
run-id : 1234
Dateiberechtigungen werden während des Artefakt-Uploads 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 gewährleistet, dass die Datei als ausführbare Datei festgelegt wird.
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 files '
run : tar -cvf my_files.tar /path/to/my/directory
- name : ' Upload Artifact '
uses : actions/upload-artifact@v4
with :
name : my-artifact
path : my_files.tar