Gitea内置CI/CD体验

一、前言

Gitea Actions 是 Gitea 1.19+ 内置的 CI/CD 组件,兼容 GitHub Actions 语法与生态,基于 Docker 可实现一键部署、环境隔离、运维极简,适合自建代码托管与自动化流水线。

本文全程使用 Docker + Docker Compose 部署,命令可直接复制执行。


二、环境要求

  • 系统:Linux x86_64

  • 依赖:Docker、Docker Compose

  • 内存:≥4GB

  • 端口:3000(Web)、222(Git SSH)


三、Docker Compose 部署 Gitea

1. 创建部署目录

1
mkdir -p /opt/gitea && cd /opt/gitea

2. 编写 docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: "3"

services:
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: always
ports:
- "3000:3000"
- "222:22"
volumes:
- ./data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
environment:
- GITEA__actions__ENABLED=true

3. 启动 Gitea

1
docker compose up -d

4. 初始化配置

访问 http://服务器IP:3000,按页面提示完成初始化。


四、Docker 部署 Act Runner

1. 创建 Runner 数据目录

1
2
mkdir -p /opt/gitea/act-runner
chmod 777 /opt/gitea/act-runner

2. 获取 Runner 注册令牌

  1. 管理员登录 Gitea

  2. 管理后台 → Actions → Runners

  3. 点击「注册新 Runner」,复制令牌

3. 注册 Runner

1
2
3
4
5
6
7
8
docker run --rm \
-v /opt/gitea/act-runner:/data \
gitea/act_runner:latest \
act_runner register \
--instance http://服务器IP:3000 \
--token 你的注册令牌 \
--labels ubuntu-latest:docker://node:16-bullseye \
--no-interactive

4. 启动 Runner 容器

1
2
3
4
5
6
7
docker run -d \
--name act-runner \
--restart always \
-v /opt/gitea/act-runner:/data \
-v /var/run/docker.sock:/var/run/docker.sock \
gitea/act_runner:latest \
act_runner daemon

五、仓库启用 Actions

  1. 进入目标仓库 → 设置

  2. 勾选「启用 Actions」

  3. 保存设置


六、创建 CI/CD 工作流

在仓库创建 .gitea/workflows/demo.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
name: Gitea Actions Demo
on: [push]
jobs:
Explore-Gitea-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 本次任务由 ${{ gitea.event_name }} 事件触发。"
- run: echo "🐧 任务正在 Gitea 提供的 ${{ runner.os }} 服务器上运行!"
- name: 检出代码
uses: actions/checkout@v3
- name: 列出文件
run: |
ls -la ${{ gitea.workspace }}
- run: echo "✅ 工作流执行完成。"

七、触发流水线与查看日志

  1. 提交并推送工作流文件
1
2
3
git add .gitea/workflows/demo.yaml
git commit -m "add ci workflow"
git push
  1. 进入仓库 → Actions 查看运行状态与实时日志

八、常用运维命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 重启 Gitea
docker compose restart gitea

# 重启 Runner
docker restart act-runner

# 查看 Gitea 日志
docker logs -f gitea

# 查看 Runner 日志
docker logs -f act-runner

# 停止服务
docker compose down
docker stop act-runner

九、总结

  • Docker 部署 Gitea 开箱即用,通过环境变量可直接开启 Actions 功能,无需复杂配置,极大降低部署门槛;

  • Act Runner 以 Docker 容器形式运行,通过挂载 /var/run/docker.sock 实现容器内任务执行,保证环境隔离性与兼容性;

  • Gitea Actions 高度兼容 GitHub Actions 工作流语法与生态,无需额外学习新知识点,可直接复用现有 GitHub Actions 插件与配置;

  • 实现代码托管与 CI/CD 一体化,流程简洁、运维便捷,非常适合个人及小团队自建轻量型 DevOps 平台