Gitea Action 构建缓存加速指南(实战七)

AI-摘要
青萍AI
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
Gitea Action 构建缓存加速指南(实战七)
青萍叙事📝 前言
这是 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文件,内容参考如下:
1 | # 已隐藏部分配置,限于篇幅这里仅展示关键 action |
配置说明:
- 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 中轻松实现:
- 高效率构建
- 避免重复下载依赖
- 自动化控制缓存命中逻辑
该方案是实现构建加速的首选之一。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果
文章目录












