跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言

GitHub Actions 下载工件指南:download-artifact 插件使用详解

介绍 GitHub Actions 中 download-artifact 插件的使用方法。涵盖基础下载、指定目录、合并多工件、模式匹配筛选及跨仓库下载等核心功能。详细解析配置参数如 name、path、pattern、merge-multiple 等。同时提供最佳实践,包括文件权限处理(建议使用 tar 打包)、版本兼容性注意事项(v4 不支持 GHES 及旧版上传)及性能优化建议。旨在帮助开发者高效管理 CI/CD 流程中的构建产物。

黑客发布于 2026/3/29更新于 2026/10/24101 浏览

GitHub Actions 下载工件指南:download-artifact 插件使用详解

GitHub Actions 的 download-artifact 插件是 CI/CD 流程中管理构建产物的核心工具。本指南将详细介绍如何高效使用这个强大的下载工件功能,帮助您在自动化工作流中轻松获取所需的构建文件。

什么是 download-artifact?

download-artifact 是 GitHub Actions 官方提供的下载插件,专门用于从工作流运行中下载之前上传的构建产物。无论是单个应用构建、多平台编译结果,还是测试报告文档,都能通过这个插件快速获取。

快速开始

基础用法:下载单个工件

最简单的使用场景是下载特定名称的工件:

jobs:
  build:
    steps:
      - uses: actions/download-artifact@v4
        with:
          name: my-artifact
指定下载目录

您可以将工件下载到指定目录:

jobs:
  build:
    steps:
      - uses: actions/download-artifact@v4
        with:
          name: my-artifact
          path: your/destination/dir

核心功能详解

1. 下载所有工件

如果省略 name 参数,将下载当前运行的所有工件:

jobs:
  build:
    steps:
      - uses: actions/download-artifact@v4
2. 合并多个工件到同一目录

在多平台构建场景中,您可能希望将所有工件合并到同一目录:

jobs:
  build:
    steps:
      - uses: actions/download-artifact@v4
        with:
          path: path/to/artifacts
          merge-multiple: true
3. 使用模式匹配筛选工件

通过 pattern 参数可以使用 glob 模式筛选要下载的工件:

jobs:
  build:
    steps:
      - uses: actions/download-artifact@v4
        with:
          path: my-artifact
          pattern: my-artifact-*
          merge-multiple: true

高级应用场景

跨仓库下载工件

download-artifact 支持从其他仓库或工作流运行下载工件:

jobs:
  build:
    steps:
      - uses: actions/download-artifact@v4
        with:
          name: my-other-artifact
          github-token: ${{ secrets.GH_PAT }}
          repository: actions/toolkit
          run-id: 1234
多平台构建场景

在复杂的 CI/CD 流程中,您可能需要在多个平台上构建应用:

jobs:
  upload:
    strategy:
      matrix:
        runs-on: [ubuntu-latest, macos-latest, windows-latest]
    steps:
      - name: 创建文件
        run: echo "hello from ${{ matrix.runs-on }}" > file-${{ matrix.runs-on }}.txt
      - name: 上传工件
        uses: actions/upload-artifact@v4
        with:
          name: my-artifact-${{ matrix.runs-on }}
          path: file-${{ matrix.runs-on }}.txt
  download:
    needs: upload
    steps:
      - name: 下载所有工件
        uses: actions/download-artifact@v4
        with:
          path: my-artifact
          pattern: my-artifact-*
          merge-multiple: true

配置参数详解

主要输入参数
  • name: 要下载的工件名称,如不指定则下载所有工件
  • path: 目标路径,支持基本的波浪号扩展
  • pattern: 用于匹配应下载工件的 glob 模式
  • merge-multiple: 是否将多个工件合并到同一目录
  • github-token: 用于 GitHub API 身份验证的令牌
  • repository: 目标仓库(格式:owner/repo)
  • run-id: 工作流运行 ID
输出参数
  • download-path: 工件下载的绝对路径

最佳实践和注意事项

文件权限问题

需要注意的是,工件上传过程中文件权限不会保留。所有目录权限为 755,文件权限为 644。如果需要保留权限,建议使用 tar 打包:

- name: 打包文件
  run: tar -cvf my_files.tar /path/to/my/directory
- name: 上传工件
  uses: actions/upload-artifact@v4
  with:
    name: my-artifact
    path: my_files.tar
版本兼容性
  • v4 版本目前不支持 GitHub Enterprise Server (GHES)
  • v4 版本不支持从 v3 及以下版本上传的工件

性能优化技巧

download-artifact v4 版本相比之前版本有显著性能提升,下载速度最高可提升 90%。为了获得最佳性能,建议:

  1. 使用最新的 v4 版本
  2. 合理设置 pattern 参数减少不必要的下载
  3. 在自托管运行器上配置适当的防火墙规则

常见问题解决

下载失败排查

如果下载失败,请检查:

  • 工件名称是否正确
  • 目标路径是否可写
  • 跨仓库下载时是否提供了有效的 github-token

总结

download-artifact 插件是 GitHub Actions 生态系统中不可或缺的工具,通过本指南的学习,您已经掌握了从基础到高级的各种使用技巧。无论是简单的单文件下载,还是复杂的多平台构建产物管理,都能轻松应对。

记住核心要点:合理使用 pattern 和 merge-multiple 参数,正确处理跨仓库下载场景,以及注意文件权限的维护。现在就开始在您的 CI/CD 工作流中应用这些知识,享受高效的构建产物管理体验!

目录

  1. GitHub Actions 下载工件指南:download-artifact 插件使用详解
  2. 什么是 download-artifact?
  3. 快速开始
  4. 基础用法:下载单个工件
  5. 指定下载目录
  6. 核心功能详解
  7. 1. 下载所有工件
  8. 2. 合并多个工件到同一目录
  9. 3. 使用模式匹配筛选工件
  10. 高级应用场景
  11. 跨仓库下载工件
  12. 多平台构建场景
  13. 配置参数详解
  14. 主要输入参数
  15. 输出参数
  16. 最佳实践和注意事项
  17. 文件权限问题
  18. 版本兼容性
  19. 性能优化技巧
  20. 常见问题解决
  21. 下载失败排查
  22. 总结

更多推荐文章

查看全部
  • Qwen-Multiple-Angles:角色与产品多视角生成插件,96 种相机角度控制
  • HuggingFace 镜像站 hf-mirror.com 高效下载方法指南
  • 大型语言模型(LLM)训练全流程指南
  • 计算机专业大学生必参加的六大编程竞赛指南
  • IntelliJ IDEA 安装与配置 Java 17 指南
  • VS Code 中配置 GitHub Copilot Agent Skills 指南
  • 大模型技术学习指南:从基础理论到高级应用路线
  • 基于 TD3 算法的车辆主动悬架控制系统设计(Matlab/Simulink 环境)
  • 自然语言处理在医疗领域的应用与实战
  • 网络安全从业者必备的十大学习资源与工具平台
  • 鸿蒙电商购物车全栈项目:用户管理、商品列表与购物车实现
  • ROG-Map: 面向大场景的高分辨率 LiDAR 机器人中心占用栅格地图
  • OpenWrt 部署 Docker 的内核适配与资源优化
  • 人工智能产品经理:AI 时代的产品经理进阶手册
  • Top K 问题解决方案详解:堆排序、快排、Bitmap 与 Hash 分治
  • Flutter 实现 TabBar 主菜单功能开发指南
  • 基于 Python 和 FastAPI 实现摸鱼倒计时界面
  • Qwen2 命名实体识别微调实战指南
  • Web Unlocker API 与 SERP 工具构建 AI 训练数据集实战
  • LLama-Factory 微调实战:如何打造个性化 AI 角色

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online