首页
/ GitHub Actions Toolkit产物管理终极指南:上传、下载、删除一键搞定

GitHub Actions Toolkit产物管理终极指南:上传、下载、删除一键搞定

2026-02-04 04:04:54作者:侯霆垣

想要在GitHub Actions中高效管理构建产物吗?GitHub Actions Toolkit提供了强大的产物管理功能,让你轻松实现产物的上传、下载和删除操作!🎯

GitHub Actions Toolkit是GitHub官方推出的开发工具包,专门用于构建GitHub Actions。其中最重要的功能之一就是产物管理,让你能够在工作流中轻松处理构建结果、测试报告、部署包等各种文件。

为什么选择GitHub Actions Toolkit产物管理?

GitHub Actions Toolkit的产物管理功能具有以下优势:

  • 性能提升:v2版本上传速度提升96%,下载速度提升80%
  • 即时可用:上传后立即获得产物ID,无需等待工作流完成
  • 跨仓库支持:可以下载和删除其他仓库的产物
  • 简单易用的API设计,几行代码就能完成复杂操作

GitHub Actions发布流程

快速开始:安装和配置

首先安装@actions/artifact包:

npm i @actions/artifact

然后导入并初始化客户端:

import {DefaultArtifactClient} from '@actions/artifact'
const artifact = new DefaultArtifactClient()

产物上传完全指南

上传产物是GitHub Actions中最常用的功能之一。你可以上传单个文件或整个目录:

const {id, size} = await artifact.uploadArtifact(
  'my-artifact',  // 产物名称
  ['/absolute/path/file1.txt', './relative/file2.txt'],  // 文件路径
  {
    retentionDays: 10  // 保留天数(可选)
  }
)

核心功能源码位于:packages/artifact/src/internal/upload/upload-artifact.ts

产物下载最佳实践

下载产物同样简单,只需要产物ID:

const {downloadPath} = await artifact.downloadArtifact(id, {
  path: '/tmp/dst/path'  // 下载路径(可选)
})

跨仓库产物管理

GitHub Actions Toolkit支持从其他工作流运行或其他仓库下载产物:

const findBy = {
  token: process.env['GITHUB_TOKEN'],
  workflowRunId: 123,
  repositoryOwner: 'actions',
  repositoryName: 'toolkit'
}

await artifact.downloadArtifact(1337, {
  findBy
})

产物删除操作详解

删除产物只需要知道产物名称:

const {id} = await artifact.deleteArtifact('my-artifact')
console.log(`Deleted Artifact ID '${id}'`)

性能优化技巧

对于大文件上传,可以调整压缩级别来提升速度:

await artifact.uploadArtifact('my-massive-artifact', ['big_file.bin'], {
  compressionLevel: 0  // 0-无压缩,9-最佳压缩
})

常见问题解答

支持的字符限制

上传产物时,名称和文件路径不能包含以下字符:" : < > | * ? \ /

产物存储期限

默认保留期为90天,可以根据需要调整。

版本兼容性

  • upload-artifact v4 + download-artifact v4 + toolkit v2
  • upload-artifact < v3 + download-artifact < v3 + toolkit < v1

总结

GitHub Actions Toolkit的产物管理功能为开发者提供了强大而灵活的工具,无论是简单的文件上传下载,还是复杂的跨仓库管理,都能轻松应对。🚀

开始使用GitHub Actions Toolkit,让你的CI/CD流程更加高效顺畅!

登录后查看全文
热门项目推荐
相关项目推荐