type
status
date
slug
summary
category
tags
create_time
Jul 20, 2025 12:55 PM
icon
password
my_create_time

📝 前言

这是 DevOps 专题的第七篇,回顾一下前几篇的内容:
这一篇我们继续介绍如何使用 Gitea Actions 来完成定时构建和手动构建。

🧭 背景介绍

在使用 Gitea 搭建自托管 Git 平台的过程中,很多开发者希望结合 CI/CD 实现自动化构建。
Gitea Actions(兼容 GitHub Actions Workflow)现已支持多种触发机制,包括定时触发和手动触发,极大地增强了 Gitea 在持续集成场景中的实用性。

🔍 使用场景

  • 每天定时拉取远程数据并构建静态站点(如:本站的朋友动态)
  • 手动触发构建以测试代码变更
  • 每周定期运行清理脚本或备份任务

📋 前提条件

在开始之前,请确保你已满足以下条件:

🚀 详细步骤

1️⃣ 定时构建配置

创建 .gitea/workflows/build.yaml 文件,内容参考如下:
配置说明:
  • on.schedule:这里我们在on标签下,新增了schedule,并配置了cron表达式,需要注意的是时间默认是按照UTC来的,如果想要按照北京时间执行,需要将北京时间-8小时,因为北京时间是属于东八区,是在UTC基础上+8小时。
例如:我们示例里面写的是凌晨2点,实际执行时间就是在北京时间上午10点。
如果想要在实际的北京时间凌晨2点执行,那边我们这里应该配置的是:0 18 * * *
另外 Gitea Action 也支持配置多个定时任务,只需要再加一条cron表达式即可,如:
最后再贴一下cron表达式对应的时间配置:
PS:提醒一下定时任务配置仅在仓库的默认分支(一般是main,除非手动修改)生效。
当达到定时任务时,我们在项目的Actions中可查看到已计划的执行,表明定时执行成功了:
notion image
有可能会延迟个1-2分钟都是正常的。

2️⃣ 手动构建配置(控制台)

手动构建有两种方式,一种是在 Gitea 控制台点击构建,还有一种是通过接口的形式触发构建。
我们先介绍通过控制台的方式进行手动构建,只需要在上面的yaml文件里面添加一行配置即可,参考如下:
当我们在on标签下面添加workflow_dispatch:后,进入 Gitea 项目控制台 → Actions → 工作流文件,就可以看到新出现的运行工作流按钮了,点击即可触发手动构建,如下图:
notion image

3️⃣ 手动构建配置(接口触发)

除了在 Web 界面点击运行工作流按钮外,Gitea 也支持通过 API 方式手动触发 workflow_dispatch 类型的构建,适用于 CLI 脚本、Webhook 联动、自动化平台(如 Jenkins、n8n)等场景。
相比在控制台手动点击构建,通过接口的方式触发无疑是要更加灵活。
PS:我的博客站点就是通过在Notion中点击按钮触发接口执行的构建,不用再到Gitea上去找项目点执行了。
首先我们获取个人 Token,进入 Gitea 个人设置 → 应用 → 生成新的令牌。
因为是内网环境,权限直接全部勾选,随便填一个令牌名称,点击生成令牌即可:
notion image
生成完的令牌我们需要保存好,在下面调用接口的时候会用到。
接口请求URL:
请求头:
请求体:
cURL 命令参考如下:
请求成功后返回 204 No Content,不会有输出,可以到Gitea控制台 → Actions里面查看是否有构建。

✅ 总结

最后总结一下通过本指南,我们系统地了解了如何在 Gitea 中:
  • 配置定时构建(schedule)
  • 支持多个 cron 表达式(UTC 时间换算)
  • 启用手动触发构建(workflow_dispatch)
  • 通过 Gitea API 实现自动化触发构建流程
Gitea Actions 提供了灵活而强大的触发机制,使得在自托管环境中实现类似 GitHub Actions 的自动化流程成为可能。
无论是定期同步、备份、构建部署,还是集成其他工具的自动触发,Gitea 都能胜任。
💡
有关文章的任何疑问,欢迎您在底部评论区留言,一起交流~
若文章对您有帮助,欢迎 请我喝杯咖啡~
 
上一篇
Harbor 镜像代理仓库配置指南
下一篇
Gitea Action 远程部署指南(实战四)

评论
Loading...