GitHub何时及为何删除旧Workflow运行?如何保留历史运行记录?
GitHub Workflow运行记录消失原因及保留方案
记录消失的核心原因
GitHub对Workflow运行记录有明确的保留期限规则:
- 公共仓库:运行记录(含日志、构建产物)默认仅保留90天,到期后会自动清理,和仓库是否有新活动无关。
- 私有仓库:默认保留90天,可手动调整最长至400天,但超过设置期限后仍会被系统删除。
你遇到的情况,大概率是旧运行记录已超过90天的默认保留期限,被GitHub自动清理了。
保留旧运行记录的可行方案
1. 私有仓库:调整保留期限
如果你的仓库是私有属性,可在仓库设置里延长记录保留时长:
- 进入仓库「Settings」页面,找到「Actions」→「General」选项
- 在「Artifacts and log retention」区域,调整保留天数(最长支持400天)
2. 主动导出归档记录
无论公共还是私有仓库,都可以主动导出运行记录做持久化保存:
- 手动导出:进入Workflow运行详情页,点击右上角「Download logs」下载日志文件,保存到本地或仓库的归档目录。
- 自动导出:编写GitHub Action,在Workflow运行结束后自动将日志提交到仓库指定分支或目录。比如用
actions/upload-artifact配合actions/checkout完成自动归档操作。
3. 定期触发Workflow维持状态
设置定时Workflow,比如每月运行一次简单任务,持续生成新的运行记录,避免CI徽章显示「无状态」,同时新记录会在保留期限内持续存在。示例配置:
name: 定期维持CI运行记录 on: schedule: - cron: '0 0 1 * *' # 每月1号执行一次 jobs: keep-alive: runs-on: ubuntu-latest steps: - name: 输出维持日志 run: echo "生成新的CI运行记录"
4. 转存至持久化存储
通过Action自动将Workflow运行日志或关键信息同步到持久化存储(比如仓库的Git LFS、自建存储服务),规避GitHub的自动清理规则。
内容的提问来源于stack exchange,提问作者tasuki
相关产品推荐
相关产品推荐

