@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
Pérdida de permiso
Descargar artefacto único
Descargar todos los artefactos
Descargue múltiples artefactos (filtrados) al mismo directorio
Descargar artefactos de otras ejecuciones de flujo de trabajo o repositorios
Entradas
Salidas
Mejoras
Cambios importantes
v4 - ¿Qué hay de nuevo?
Uso
Ejemplos
Limitaciones
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
.
Las descargas son significativamente más rápidas, con una mejora de más del 90% en el peor de los casos.
Los artefactos se pueden descargar desde otros repositorios y ejecuciones de flujo de trabajo cuando se suministran con una PAT.
En los ejecutores autohospedados, es posible que se requieran reglas de firewall adicionales.
No se admite la descarga de artefactos creados a partir de action/upload-artifact@v3
e inferiores.
Para obtener ayuda con los cambios importantes, consulte MIGRATION.md.
- utiliza: action/download-artifact@v4 con: # Nombre del artefacto a descargar. # Si no se especifica, se descargan todos los artefactos de la ejecución. # Opcional. nombre: # Ruta de destino. Admite la expansión básica de tilde. # Opcional. El valor predeterminado es la ruta $GITHUB_WORKSPACE: # Un patrón global para los artefactos que deben descargarse. # Se ignora si se especifica el nombre. # Opcional. patrón: # Cuando coinciden varios artefactos, esto cambia el comportamiento de los directorios de destino. # Si es verdadero, los artefactos descargados estarán en el mismo directorio especificado por la ruta. # Si es falso, los artefactos descargados se extraerán en directorios individuales con nombre dentro de la ruta especificada. # Opcional. El valor predeterminado es 'falso' merge-multiple: # El token de GitHub utilizado para autenticarse con la API de GitHub. # Esto es necesario al descargar artefactos de un repositorio diferente o de una ejecución de flujo de trabajo diferente. # Opcional. Si no se especifica, la acción descargará artefactos del repositorio actual y de la ejecución del flujo de trabajo actual. github-token: # El propietario del repositorio y el nombre del repositorio unidos por "/". # Si se especifica github-token, este es el repositorio desde donde se descargarán los artefactos. # Opcional. El valor predeterminado es el repositorio ${{ github.repository }}: # La identificación de la ejecución del flujo de trabajo desde donde se cargó el artefacto de descarga deseado. # Si se especifica github-token, esta es la ejecución desde la que se descargarán los artefactos. # Opcional. El valor predeterminado es ${{ github.run_id }} ID de ejecución:
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
):
pasos: - utiliza: acciones/descargar-artifact@v4 con: nombre: mi-artifact- nombre: Muestra la estructura de los archivos descargados ejecutar: ls -R
Descargue a un directorio específico (también admite ~
expansión):
pasos: - utiliza: acciones/descargar-artifact@v4 con: nombre: mi-artefacto ruta: su/destino/dir- nombre: muestra la estructura de los archivos descargados ejecutar: ls -R su/destino/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:
pasos: - usos: acciones/descargar-artifact@v4- nombre: estructura de visualización de archivos descargados ejecutar: ls -R
Descargue todos los artefactos a un directorio específico:
pasos: - utiliza: acciones/descargar-artifact@v4 con: ruta: ruta/a/artifacts- nombre: estructura de visualización de los archivos descargados ejecutar: ls -R ruta/a/artifacts
Para descargarlos al mismo directorio:
pasos: - utiliza: acciones/descargar-artifact@v4 con: ruta: ruta/a/artifacts merge-multiple: true- nombre: Muestra la estructura de los archivos descargados ejecutar: ls -R ruta/a/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.
trabajos: carga: estrategia: matriz: ejecución: [ubuntu-latest, macos-latest, windows-latest] ejecución: ${{ Matrix.runs-on }} pasos: - nombre: crear una ejecución de archivo: echo "hola desde ${{ Matrix.runs-on }}" > archivo-${{ Matrix.runs-on }}.txt - nombre: Cargar usos de artefacto: acciones/upload-artifact@v4 con: nombre: mi-artifact-${{ Matrix.runs-on }} ruta: archivo-${{ Matrix.runs-on }}.descarga de txt: necesita: carga continua: ubuntu-últimos pasos: - nombre: Descargar todos los artefactos usa: acciones/descargar-artifact@v4 con: ruta: mi-artifact patrón: mi-artifact-* merge-multiple: verdadero - ejecutar: ls -R mi-artefacto
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:
pasos: - utiliza: acciones/descargar-artifact@v4 con: nombre: mi-otro-artifact github-token: ${{ secrets.GH_PAT }} # token con acciones: permisos de lectura en el repositorio de destino: acciones/id de ejecución del kit de herramientas: 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.
- nombre: 'Archivos Tar' ejecutar: tar -cvf my_files.tar /ruta/a/mi/directorio- nombre: 'Cargar artefacto' utiliza: acciones/upload-artifact@v4 con: nombre: mi-artefacto ruta: mis_archivos. alquitrán