首页/开发/CI/CD 与发布速查/GitHub Actions 制品上传与下载
工具链要点63 条

GitHub Actions 制品上传与下载

用 upload-artifact 保存作业产物、download-artifact 在其他作业取用;v4 起同一工作流内制品名不可重复,制品有保留期。

CI/CD 与发布速查开发更新于 2026-10-13

制品上传与下载是什么

用上传动作保存作业产物、下载动作在其他作业取用;v4 起同一工作流内制品名不可重复,制品有保留期,到期自动删除。制品名建议带矩阵变量或作业名,下载时可指定名称或取用全部;制品用于工作流内传递数据,长期归档要改用制品库。

基本信息

上传上传动作,配置名称、路径与保留天数
下载下载动作,按名称或全部取用
v4 语义制品不可变,同名上传会失败
保留期按仓库设置,到期删除
用途工作流内传递产物
体积上限单制品体积存在上限,超大产物需切分

参数与作用

参数作用注意
name制品名称同工作流内必须唯一
path上传路径支持目录与通配
retention-days保留天数受仓库上限约束
下载名称指定取用某一制品不填则取全部
下载全部不指定名称下游作业汇总使用
矩阵命名名称带矩阵变量每个实例独立制品

按矩阵命名

按矩阵命名
# 上传:名称带矩阵变量避免重名
- uses: actions/upload-artifact@v4
  with:
    name: dist-${{ matrix.os }}
    path: dist/
# 另一作业下载全部制品
- uses: actions/download-artifact@v4
  with:
    path: dist

典型使用场景

  • 构建与发布分离:构建作业上传产物,发布作业下载后使用
  • 矩阵构建:各平台产物分开命名,避免 v4 同名失败
  • 调试留存:测试报告与日志作为制品供下载排查
  • 跨作业传递:大体积数据用制品传递,替代传输不便的缓存
  • 保留期管理:按用途设置天数,避免仓库存储膨胀
  • 缓存与制品区分:缓存用于加速安装,制品用于交付产物
  • 内容检查:报告与日志可能含敏感字段,先脱敏再上传
制品名带上矩阵变量或作业名:v4 语义下重名直接失败。
制品不是归档:长期留存要用制品库或对象存储,保留期到期即删除。

易错点

  • 沿用 v3 同名上传习惯:迁移 v4 后流水线报错
  • 把制品当长期归档:保留期到期即删除,长期留存要用其他存储
  • 下载时名称写错:取不到文件且报错指向含糊,需对照上传名称核对
  • 把大体积缓存当制品:重复上传拉长流水线时间,缓存与制品用途要分清

数据来源与参考

  • GitHub Docs《Storing and sharing data from a workflow》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌