登录
推荐 文章 Go 技术 课程 下载 专题 AI
首页 >  文章 >  软件教程

Actions artifacts 怎样设置产物保留期

来源:17golang原创

时间:2026-10-25 11:45:31 423浏览 收藏

测试报告下载链接很快失效,或者临时构建产物一直占着存储空间,通常需要重新安排 Actions artifacts 的保留期。先给仓库定一个默认期限,再对短期报告单独设置天数,后续维护更清楚。本文以 GitHub.com 上虚构的 demo-team/report-demo 仓库说明,界面配图为原创操作示意,未实际修改任何仓库。

先准备报告目录与期限表

准备一个已有工作流,并确认生成报告的步骤会在 runner 上写出 reports/ 目录。上传 action 负责打包已有文件,不会替你运行测试或生成报告。准备工作还包括仓库管理权限;只有下载需求的读者不需要修改仓库设置。

对象示例期限配置位置
普通构建产物30天仓库默认设置
临时测试报告7天上传步骤 retention-days
已经上传的旧报告保留原有到期安排本次修改不追溯

这张表是示例方案,不是 GitHub 的强制推荐期限。先按团队实际取证、复查与交付需求决定天数,长期交付文件应安排合适的归档位置,避免把临时产物链接当永久下载地址。

1. 在仓库设置保存默认保留天数

打开仓库,进入 Settings → Actions → General,找到 Check, workflow run, status, artifact and log retention 区域,在天数字段填入 30,再点击 Save。当前设置区域同时涉及工作流运行、日志等对象,调整前应确认团队对这些记录的保存需求。

原创仓库设置示意:Actions General 中填写30天并点击Save

完成标志是保存后字段仍显示目标天数,且页面没有权限或范围错误。不要只输入后就关闭页面。若找不到设置入口,先确认自己进入的是仓库设置,以及账号是否具备相应管理权限。

仓库默认保留期通常为90天。公共仓库允许1至90天,私有仓库可配置1至400天,同时受组织或企业的上限约束。保存新值只影响之后创建的相关对象,不能据此推断已有报告的到期日已经改变。

2. 映射上传参数并下载新产物

把下列片段放进已有工作流 job 的 steps,排在生成报告的步骤之后。此处使用官方教程中的 upload-artifact@v4 形式说明 GitHub.com 的参数;它不是完整工作流,也不适用于直接照搬到 GitHub Enterprise Server。

# 放在已有 job 的 steps 中,且位于生成报告的步骤之后
- name: 上传测试报告
  uses: actions/upload-artifact@v4
  with:
    # 用固定名称识别本次运行的产物
    name: test-report
    # 指向前一步实际生成的文件目录
    path: reports/
    # 本示例保留七天,须处于管理员允许范围内
    retention-days: 7
    # 目录没有文件时明确报错,避免误认为上传完成
    if-no-files-found: error

提交前逐项预览:name 对应下载列表里的名称,path 对应 runner 上已有文件,retention-days 对应本次上传的期限。示例的7天应处于仓库及上级策略允许范围内。不要用本地电脑上的绝对路径替换 runner 的报告目录。

保存并提交工作流修改后,按仓库原有触发方式启动一次新的运行。等待上传步骤成功,再进入仓库 Actions → 对应工作流 → 新运行名称,滚动到运行摘要的 Artifacts 区域,点击 test-report 下载。

原创运行摘要示意:在Artifacts中点击test-report下载报告

完成标志是新运行的上传步骤成功、列表出现 test-report,并且下载解压后包含预期报告文件。图中的运行与文件均为示例,没有代表本文实际执行结果。下载需登录并拥有仓库读取权限,产物也必须仍在有效期内。

若上传步骤提示没有文件,回到报告生成步骤确认目录、工作目录与文件输出;若下载列表为空,确认打开的是修改后的那次运行。不能仅凭工作流整体显示成功,就认定某个预期目录已经上传。

常见疑问与完成清单

retention-days 填0能永久保存吗?不能。0表示采用仓库默认保留设置;省略该参数也使用默认策略。需要长期留存的报告,应另行规划归档和访问权限。

把默认值从30改为7,会马上删除旧产物吗?不会按这次修改追溯重算旧产物。清理旧文件是另一项操作,不能把修改默认值当成即时释放空间的动作。

为什么写入更大的天数仍然失败?先检查仓库类型和组织、企业策略,再调整上传参数。不要假定私有仓库必然允许任意天数,也不要用多个上传步骤试图绕开管理上限。

最终核对三件事:仓库默认值已保存;新上传步骤明确使用7天或有意继承默认值;新运行的产物可以下载且内容正确。这样才能把“改了配置”落实到“新产物按计划生成并可用”。

官网入口:https://github.com/

仓库设置文档:https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository

上传参数与示例:https://docs.github.com/en/actions/tutorials/store-and-share-data;https://github.com/actions/upload-artifact

下载文档:https://docs.github.com/en/actions/how-tos/manage-workflow-runs/download-workflow-artifacts

声明:本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>