@actions/download-artifact
Avertissement
actions/download-artifact@v3 devrait devenir obsolète le 30 novembre 2024 . Apprendre encore plus. De même, la dépréciation des versions v1/v2 est prévue pour le 30 juin 2024 . Veuillez mettre à jour votre flux de travail pour utiliser la version 4 des actions d'artefact. Cette dépréciation n’aura aucun impact sur les versions existantes de GitHub Enterprise Server utilisées par les clients.
Téléchargez les artefacts d'actions à partir de vos exécutions de workflow. Propulsé en interne par le package @actions/artifact.
Voir aussi upload-artefact.
@actions/download-artifact
Perte d'autorisation
Télécharger un artefact unique
Télécharger tous les artefacts
Téléchargez plusieurs artefacts (filtrés) dans le même répertoire
Télécharger des artefacts à partir d'autres exécutions de workflow ou référentiels
Entrées
Sorties
Améliorations
Changements révolutionnaires
v4 - Quoi de neuf
Usage
Exemples
Limites
Important
download-artifact@v4+ n'est pas encore pris en charge sur GHES. Si vous êtes sur GHES, vous devez utiliser la v3.
La sortie de upload-artifact@v4 et download-artifact@v4 sont des changements majeurs dans l'architecture backend d'Artifacts. Ils présentent de nombreuses améliorations de performances et de comportement.
Pour plus d'informations, consultez la documentation @actions/artifact
.
Les téléchargements sont nettement plus rapides, avec une amélioration de plus de 90 % dans les pires scénarios.
Les artefacts peuvent être téléchargés à partir d'autres exécutions de flux de travail et référentiels lorsqu'ils sont fournis avec un PAT.
Sur les coureurs auto-hébergés, des règles de pare-feu supplémentaires peuvent être requises.
Le téléchargement d'artefacts créés à partir de action/upload-artifact@v3
et versions antérieures n'est pas pris en charge.
Pour obtenir de l’aide sur les modifications avec rupture, consultez MIGRATION.md.
- utilise : actions/download-artifact@v4 avec : # Nom de l'artefact à télécharger. # Si non spécifié, tous les artefacts de l'exécution sont téléchargés. # Facultatif. nom : # Chemin de destination. Prend en charge l'expansion de base du tilde. # Facultatif. La valeur par défaut est le chemin $GITHUB_WORKSPACE : # Un modèle global pour les artefacts qui doivent être téléchargés. # Ignoré si le nom est spécifié. # Facultatif. pattern : # Lorsque plusieurs artefacts correspondent, cela modifie le comportement des répertoires de destination. # Si vrai, les artefacts téléchargés seront dans le même répertoire spécifié par chemin. # Si faux, les artefacts téléchargés seront extraits dans des répertoires nommés individuels dans le chemin spécifié. # Facultatif. La valeur par défaut est 'false' merge-multiple : # Le jeton GitHub utilisé pour s'authentifier auprès de l'API GitHub. # Ceci est requis lors du téléchargement d'artefacts à partir d'un référentiel différent ou d'une exécution de workflow différente. # Facultatif. Si elle n’est pas spécifiée, l’action téléchargera les artefacts du référentiel actuel et de l’exécution du workflow en cours. github-token : # Le propriétaire du référentiel et le nom du référentiel réunis par "/". # Si github-token est spécifié, il s'agit du référentiel à partir duquel les artefacts seront téléchargés. # Facultatif. La valeur par défaut est le référentiel ${{ github.repository }} : # L'identifiant de l'exécution du workflow à partir duquel l'artefact de téléchargement souhaité a été téléchargé. # Si github-token est spécifié, il s'agit de l'exécution à partir de laquelle les artefacts seront téléchargés. # Facultatif. La valeur par défaut est ${{ github.run_id }} run-id :
Nom | Description | Exemple |
---|---|---|
download-path | Chemin absolu où le ou les artefacts ont été téléchargés | /tmp/my/download/path |
Télécharger dans le répertoire de travail actuel ( $GITHUB_WORKSPACE
) :
mesures: - utilise : actions/download-artifact@v4 avec : nom : my-artifact-name : Afficher la structure des fichiers téléchargés exécuter : ls -R
Télécharger dans un répertoire spécifique (prend également en charge l'extension ~
) :
mesures: - utilise : actions/download-artifact@v4 avec : nom : chemin de mon-artefact : votre/destination/dir- nom : Afficher la structure des fichiers téléchargés exécuter : ls -R votre/destination/rép
Si le paramètre d'entrée name
n'est pas fourni, tous les artefacts seront téléchargés. Pour différencier les artefacts téléchargés, par défaut, un répertoire désigné par le nom des artefacts sera créé pour chaque artefact individuel. Ce comportement peut être modifié avec le paramètre d'entrée merge-multiple
.
Exemple, s'il y a deux artefacts Artifact-A
et Artifact-B
et que le répertoire est etc/usr/artifacts/
, la structure du répertoire ressemblera à ceci :
etc/usr/artifacts/ Artifact-A/ ... contents of Artifact-A Artifact-B/ ... contents of Artifact-B
Téléchargez tous les artefacts dans le répertoire de travail actuel :
mesures: - utilise : actions/download-artifact@v4- nom : structure d'affichage des fichiers téléchargés, exécution : ls -R
Téléchargez tous les artefacts dans un répertoire spécifique :
mesures: - utilise : actions/download-artifact@v4 avec : chemin : chemin/vers/artefacts- nom : Afficher la structure des fichiers téléchargés exécuter : ls -R chemin/vers/artefacts
Pour les télécharger dans le même répertoire :
mesures: - utilise : actions/download-artifact@v4 avec : path : path/to/artifacts merge-multiple : true- name : Afficher la structure des fichiers téléchargés exécuter : ls -R path/to/artifacts
Ce qui se traduira par :
path/to/artifacts/ ... contents of Artifact-A ... contents of Artifact-B
Dans plusieurs scénarios arch/os, vous pouvez créer des artefacts dans différentes tâches. Pour télécharger tous les artefacts dans le même répertoire (ou correspondant à un modèle global), vous pouvez utiliser le pattern
et merge-multiple
entrées.
jobs : téléchargement : stratégie : matrice : exécution : [ubuntu-latest, macos-latest, windows-latest] exécution : ${{ matrice.runs-on }} étapes : - nom : Créer un fichier exécuté : echo "bonjour de ${{ matrice.runs-on }}" > fichier-${{ matrice.runs-on }}.txt - nom : Télécharger l'artefact utilise : actions/upload-artifact@v4 avec : nom : mon-artefact-${{ matrice.runs-on }} chemin : fichier-${{ matrice.runs-on }}.txt télécharger : besoins : téléchargement en cours : ubuntu-dernières étapes : - nom : Télécharger tous les artefacts utilise : actions/download-artifact@v4 avec : chemin : mon-artefact modèle : mon-artefact-* fusion-multiple : vrai - exécuter : ls -R mon-artefact
Cela donne un répertoire comme celui-ci :
my-artifact/ file-macos-latest.txt file-ubuntu-latest.txt file-windows-latest.txt
Il peut être utile de télécharger des artefacts à partir d'autres exécutions de workflow, ou même d'autres référentiels. Par défaut, les autorisations sont limitées afin qu'ils puissent uniquement télécharger des artefacts dans le cadre de l'exécution du flux de travail en cours. Pour élever les autorisations pour ce scénario, vous pouvez spécifier un github-token
ainsi qu'un autre référentiel et exécuter des identifiants :
mesures: - utilise : actions/download-artifact@v4 avec : nom : mon-autre-artefact github-token : ${{ secrets.GH_PAT }} # jeton avec actions : autorisations de lecture sur le référentiel du référentiel cible : actions/toolkit run-id : 1234
Les autorisations de fichiers ne sont pas conservées pendant le téléchargement d'artefacts. Tous les répertoires en auront 755
et tous les fichiers en auront 644
. Par exemple, si vous créez un fichier exécutable à l'aide de chmod
, puis téléchargez ce fichier, il n'est plus garanti que le fichier soit défini comme exécutable après le téléchargement.
Si vous devez conserver les autorisations, vous pouvez tar
tous vos fichiers ensemble avant le téléchargement de l'artefact. Après le téléchargement, le fichier tar
conservera les autorisations de fichier et le respect de la casse.
- nom : 'Fichiers Tar' exécute : tar -cvf my_files.tar /path/to/my/directory- nom : 'Télécharger l'artefact' utilise : actions/upload-artifact@v4 avec : nom : chemin de mon-artefact : mes_fichiers. goudron