docker-compose部署gitea-CI/CD actions runner工作流

2025/03/19 gitea 共 1668 字,约 5 分钟
闷骚的程序员

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 作用:

  1. 检出代码
  2. 设置 Java 17 环境
  3. 用 Maven 进行编译
  4. 构建 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,简单好用! 🚀

文档信息

Search

    Table of Contents