type
status
date
slug
summary
category
tags
create_time
Jul 23, 2025 02:30 PM
icon
password
my_create_time
📝 前言
这是 DevOps 专题的第十篇,回顾一下前几篇的内容:
- 基本概念介绍:《从阿里云效到自建DevOps平台:Gitea入门介绍》
- 快速部署 Gitea 实例:《使用 Docker 快速部署 Gitea 指南(实战一)》
- 部署 CI/CD 工具:《使用二进制部署 Gitea Runner 指南(实战二)》
- 部署镜像仓库:《离线部署 Harbor 企业级镜像仓库指南》
- Gitea Action 入门:《Gitea Actions 工作流入门指南(实战三)》
- Gitea Action 远程部署:《Gitea Action 远程部署指南(实战四)》
- Gitea Action 定时与手动构建:《Gitea Action 定时构建和手动构建指南(实战五)》
- Harbor 镜像代理配置:《Harbor 镜像代理仓库配置指南》
- Gitea Action 构建多架构镜像:《Gitea Action 构建多架构镜像指南(实战六)》
这一篇我们继续介绍如何使用 Gitea Actions 来配置构建缓存,从而大幅提升构建性能,缩减构建时间。
🧭 背景介绍
随着 DevOps 与自托管 CI/CD 的普及,Gitea Action 作为 Gitea 的内建 CI 解决方案,越来越多被用于中小团队的日常开发与部署流程中。
在每次构建过程中,重复下载安装依赖包是最常见、最耗时的操作。
如何进一步提高构建效率是大家比较关注的问题。
本指南将围绕构建缓存的加速实践展开,帮助你最大化地利用本地资源、提升构建效率,打造更流畅的开发体验。
🔍 使用场景
主要适用于以下场景:
- 构建时间长、依赖复杂的项目(如 Node.js、Java、Python、Go)
- 依赖包重复下载安装(如 npm、pip、maven、go modules)
- 希望将依赖缓存至宿主机或远程缓存服务
📋 前提条件
在开始前,请确认以下环境准备已完成:
- 已部署 Gitea 1.21+,并开启 Actions 功能(默认开启,部署文章参看:《使用 Docker 快速部署 Gitea 指南(实战一)》)
- Gitea Runner 已正确注册并运行(可参看文章:《使用二进制部署 Gitea Runner 指南(实战二)》)
🚀 详细步骤
1️⃣ 编写工作流文件
这里我们以一个前端的项目为例,该项目使用
yarn
作为包管理器。创建
.gitea/workflows/build.yaml
文件,内容参考如下:配置说明:
- cache action: 这次我们引入了一个新的action
cache
,这是官方提供的专门用于构建时存储和恢复缓存的。
- path: 指定要缓存的文件或目录路径,我这里列的是NodeJS的常见路径,如果是其他语言需要换成别的,比如Java 就缓存
~/.m2/repository
。
- key: 缓存的唯一键,这里我是通过生成
yarn.lock
的hash作为键的一部分,当yarn.lock 文件发生变更,如引入新的依赖时,缓存就失效。
- restore-keys: 缓存模糊查找关键词,当 key 没有命中缓存时,系统会依次尝试用
restore-keys
中的前缀模糊匹配已有缓存。我这里直接写的是很大返回的一个路径,这样即使lock
文件轻微改动也能复用部分缓存,避免完全从零开始。
- steps.yarn-cache.outputs.cache-hit: 在安装依赖的步骤中我们新添加了一个
if判断
,这是由cache action提供的一个变量,当输出为true
时则代表命中了缓存,我这里是判断不为true
才执行这个步骤,也即是未命中缓存执行安装依赖。
PS: 需要注意的是steps.<
yarn-cache
>需要跟上一步的步骤id
保持一致。2️⃣ 推送代码触发构建
只需将代码推送至
main
分支,Gitea Actions 会自动触发工作流进行构建。当首次构建时未命中缓存会按正常全部执行,而当第二次再运行时就可以查看到跳过了依赖安装这一步。
可以在 Gitea 的”Actions”界面查看执行进度与日志。


出现圆圈斜杠图标时,则表示该步骤已被跳过了,也即是我们缓存依赖成功啦~
✅ 总结
最后总结一下,不得不说缓存是计算机科学里面非常重要的一项技术。
通过 GitHub 官方的
actions/cache
,我们可以在 Gitea Actions 中轻松实现:- 高效率构建
- 避免重复下载依赖
- 自动化控制缓存命中逻辑
该方案是实现构建加速的首选之一。
有关文章的任何疑问,欢迎您在底部评论区留言,一起交流~
若文章对您有帮助,欢迎 请我喝杯咖啡~
- 作者:青萍叙事
- 链接:https://blog.lusyoe.com/article/gitea-action-cache-guide
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。