@actions/download-artifact
Advertencia
action/download-artifact@v3 está programado para dejar de estar disponible el 30 de noviembre de 2024 . Obtenga más información. De manera similar, la versión 1/v2 está programada para dejar de estar disponible el 30 de junio de 2024 . Actualice su flujo de trabajo para utilizar la versión 4 de las acciones de artefacto. Esta desaprobación no afectará ninguna versión existente de GitHub Enterprise Server que estén utilizando los clientes.
Descargue artefactos de acciones de sus ejecuciones de flujo de trabajo. Desarrollado internamente por el paquete @actions/artifact.
Véase también cargar-artefacto.
@actions/download-artifact
Importante
download-artifact@v4+ aún no es compatible con GHES. Si estás en GHES, debes usar v3.
El lanzamiento de upload-artifact@v4 y download-artifact@v4 son cambios importantes en la arquitectura backend de Artifacts. Tienen numerosas mejoras de rendimiento y comportamiento.
Para obtener más información, consulte la documentación @actions/artifact
.
action/upload-artifact@v3
e inferiores.Para obtener ayuda con los cambios importantes, consulte 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 :
Nombre | Descripción | Ejemplo |
---|---|---|
download-path | Ruta absoluta donde se descargaron los artefactos | /tmp/my/download/path |
Descargar al directorio de trabajo actual ( $GITHUB_WORKSPACE
):
steps :
- uses : actions/download-artifact@v4
with :
name : my-artifact
- name : Display structure of downloaded files
run : ls -R
Descargue a un directorio específico (también admite ~
expansión):
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
Si no se proporciona el parámetro de entrada name
, se descargarán todos los artefactos. Para diferenciar entre artefactos descargados, de forma predeterminada se creará un directorio indicado por el nombre de los artefactos para cada artefacto individual. Este comportamiento se puede cambiar con el parámetro de entrada merge-multiple
.
Por ejemplo, si hay dos artefactos Artifact-A
y Artifact-B
, y el directorio es etc/usr/artifacts/
, la estructura del directorio se verá así:
etc/usr/artifacts/
Artifact-A/
... contents of Artifact-A
Artifact-B/
... contents of Artifact-B
Descargue todos los artefactos al directorio de trabajo actual:
steps :
- uses : actions/download-artifact@v4
- name : Display structure of downloaded files
run : ls -R
Descargue todos los artefactos a un directorio específico:
steps :
- uses : actions/download-artifact@v4
with :
path : path/to/artifacts
- name : Display structure of downloaded files
run : ls -R path/to/artifacts
Para descargarlos al mismo directorio:
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
Lo que resultará en:
path/to/artifacts/
... contents of Artifact-A
... contents of Artifact-B
En múltiples escenarios de arch/os, es posible que tenga artefactos creados en diferentes trabajos. Para descargar todos los artefactos al mismo directorio (o que coincidan con un patrón global), puede usar el pattern
y merge-multiple
entradas.
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
Esto da como resultado un directorio como este:
my-artifact/
file-macos-latest.txt
file-ubuntu-latest.txt
file-windows-latest.txt
Puede resultar útil descargar artefactos de otras ejecuciones de flujo de trabajo o incluso de otros repositorios. De forma predeterminada, los permisos tienen un alcance para que solo puedan descargar artefactos dentro de la ejecución del flujo de trabajo actual. Para elevar los permisos para este escenario, puede especificar un github-token
junto con otro repositorio e identificadores de ejecución:
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
Los permisos de archivos no se mantienen durante la carga de artefactos. Todos los directorios tendrán 755
y todos los archivos tendrán 644
. Por ejemplo, si crea un archivo ejecutable usando chmod
y luego lo carga, ya no se garantiza que el archivo posterior a la descarga se establezca como ejecutable.
Si debe conservar los permisos, puede tar
todos sus archivos juntos antes de cargar el artefacto. Después de la descarga, el archivo tar
mantendrá los permisos del archivo y distinguirá entre mayúsculas y minúsculas.
- 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