Gitea 的 Actions Runner 是 Gitea 官方提供的 CI/CD 运行器,它可以让你在 Gitea 内部直接执行 CI/CD 流程,类似于 GitHub Actions 或 GitLab CI/CD。
Gitea Actions Runner 是什么?
它用于运行 Gitea Actions 定义的任务,比如:
- 编译构建 Java 项目(使用 Maven/Gradle)
- 运行自动化测试
- 打包 Docker 镜像
- 部署应用到服务器/K8s
它的作用类似于 Drone、Jenkins,但它是 Gitea 官方内置的 CI/CD 解决方案,不需要额外的 CI/CD 工具。
如何使用 Gitea Actions Runner
1. 启用 Gitea Actions
你需要在 app.ini
配置文件中启用 Actions:
[ACTIONS]
ENABLED = true
DEFAULT_ACTIONS_URL = https://gitea.com/gitea/act_runner/releases
然后重启 Gitea。
2. 安装 Gitea Actions Runner
你需要在服务器上安装 Gitea Actions Runner,可以使用 Docker 运行:
docker run -d --name gitea-runner \
-e GITEA_INSTANCE_URL=http://gitea:3000 \
-e GITEA_RUNNER_REGISTRATION_TOKEN=your_token \
-e GITEA_RUNNER_NAME=my-runner \
-e GITEA_RUNNER_LABELS=linux \
gitea/act_runner:latest
3. 在 Gitea 项目中创建 .gitea/workflows.yml
类似于 GitHub Actions,你可以在仓库里创建 .gitea/workflows.yml
,比如:
name: Java CI/CD Pipeline
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: Build with Maven
run: mvn clean package
- name: Build Docker Image
run: |
docker build -t my-app .
docker tag my-app my-registry:5000/my-app:latest
docker push my-registry:5000/my-app:latest
这个 Workflow 作用:
- 检出代码
- 设置 Java 17 环境
- 用 Maven 进行编译
- 构建 Docker 镜像并推送到私有仓库
Gitea Actions Runner vs. Drone/Jenkins
| 对比项 | Gitea Actions Runner | Drone CI | Jenkins | |—————|—————-|———|———| | 易用性 | 内置 Gitea,简单 | 需要单独部署 | 复杂,需要配置 | | 扩展性 | 兼容 GitHub Actions 生态 | 轻量级,基于容器 | 插件丰富,功能强大 | | 部署难度 | 直接跑容器即可 | 需要 Drone Server & Runner | 需要 Master/Agent | | 适合场景 | 适用于 Gitea 项目,轻量级 CI/CD | 适合容器化项目 | 适合大型企业级 CI/CD |
适用场景:
- 如果你已经在用 Gitea,推荐直接用 Gitea Actions
- 如果你的项目是容器化的,可以用 Drone
- 如果你需要高度自定义,可以用 Jenkins
总结
如果你想让 Gitea 具备 CI/CD 能力,可以用 Gitea Actions Runner 直接跑自动化任务,而不需要额外部署 Drone 或 Jenkins。
你可以在 .gitea/workflows.yml
里配置构建、测试、部署任务,类似 GitHub Actions,简单好用! 🚀
文档信息
- 本文作者:Luis Li
- 本文链接:https://dalejenny.github.io/2025/03/19/devops/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)