当前位置: 首页 > news >正文

Gitea 1.19.3内置CI/CD实战:手把手教你配置act_runner并跑通第一个Workflow

Gitea 1.19.3内置CI/CD实战:从零配置act_runner到首个Workflow成功运行

1. 环境准备与基础配置

在开始之前,确保您已具备以下环境条件:

  • Gitea 1.19.3或更高版本:这是支持内置Actions的最低版本要求
  • Docker环境:Runner需要Docker作为执行环境
  • Linux服务器:推荐使用Ubuntu 20.04+或CentOS 7+作为运行平台

注意:生产环境建议使用专用服务器运行Runner,避免资源争用

首先修改Gitea的配置文件app.ini,启用Actions功能:

[actions] ENABLED = true

保存后重启Gitea服务使配置生效。验证是否成功启用:

sudo systemctl restart gitea curl -I http://localhost:3000/api/actions/runner

若返回200 OK则表示功能已激活。

2. Runner安装与注册

2.1 获取Runner注册令牌

  1. 登录Gitea管理后台
  2. 导航至"站点管理"→"Runners"
  3. 点击"创建Runner"获取注册令牌

2.2 准备Runner运行环境

创建必要的目录结构:

mkdir -p /opt/gitea/runner/{config,data}

创建配置文件/opt/gitea/runner/config/config.yaml

log: level: info runner: file: .runner capacity: 4 # 根据CPU核心数调整 envs: GITEA_ACTIONS: "true" container: network: bridge privileged: false

2.3 启动Runner容器

执行以下Docker命令启动Runner:

docker run -d \ --name gitea-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /opt/gitea/runner/data:/data \ -v /opt/gitea/runner/config:/config \ -e CONFIG_FILE=/config/config.yaml \ -e GITEA_INSTANCE_URL=http://your-gitea-domain.com \ -e GITEA_RUNNER_REGISTRATION_TOKEN=your_token_here \ gitea/act_runner:nightly

验证Runner状态:

docker logs -f gitea-runner

成功注册后应看到类似输出:

INFO Registering runner... INFO Runner registered successfully

3. 配置首个Workflow

3.1 创建测试仓库

  1. 新建名为action-test的仓库
  2. 创建.gitea/workflows目录结构

3.2 编写基础Workflow

创建hello-world.yaml文件:

name: Hello World on: [push] jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Print greeting run: echo "Hello from Gitea Actions!" - name: Show environment run: | echo "Runner OS: ${{ runner.os }}" echo "Gitea version: ${{ gitea.version }}"

3.3 触发Workflow执行

提交并推送更改到仓库:

git add .gitea/workflows/hello-world.yaml git commit -m "Add first workflow" git push origin main

4. 监控与问题排查

4.1 查看执行状态

在仓库页面导航至"Actions"标签页,您应该能看到正在运行的工作流。点击进入可查看详细日志。

常见状态指示:

状态图标含义建议操作
🟢执行成功无需操作
🟡正在执行等待完成
🔴执行失败查看日志排查问题
排队中检查Runner是否在线

4.2 常见问题解决

问题1:Runner未接收任务

  • 检查Runner日志是否显示心跳正常
  • 确认网络连通性:
    curl -v $GITEA_INSTANCE_URL/api/actions/runner

问题2:Docker权限错误

  • 确保docker.sock权限正确:
    sudo chmod 666 /var/run/docker.sock

问题3:缓存失败

  • 在config.yaml中启用缓存:
    cache: enabled: true dir: "/data/cache"

5. 进阶配置建议

5.1 优化Runner性能

调整config.yaml中的关键参数:

runner: capacity: 4 # 并行任务数 fetch_interval: 5s # 任务轮询间隔 container: network: host # 高性能网络模式 options: --cpus=1 --memory=2g # 资源限制

5.2 安全最佳实践

  • 为Runner创建专用Docker网络:
    docker network create gitea-runner-net
  • 使用资源限制:
    container: options: | --cpus=2 --memory=4g --pids-limit=500

5.3 多Runner管理

对于大型项目,建议部署多个专用Runner:

# 开发环境Runner docker run ... -e LABELS=dev ... # 生产环境Runner docker run ... -e LABELS=prod ...

在Workflow中指定Runner:

jobs: deploy: runs-on: prod steps: [...]

6. 实际应用场景示例

6.1 自动化构建Java项目

name: Java CI on: [push] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up JDK 17 uses: actions/setup-java@v3 with: java-version: '17' - name: Build with Maven run: mvn -B package --file pom.xml - name: Upload Artifact uses: actions/upload-artifact@v3 with: name: target path: target/*.jar

6.2 前端项目自动化测试

name: Node.js CI on: [push] jobs: test: runs-on: ubuntu-latest strategy: matrix: node-version: [14.x, 16.x, 18.x] steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - run: npm install - run: npm test

在配置过程中发现,合理设置缓存可以显著提升后续构建速度。例如对于Node.js项目,添加以下步骤:

- name: Cache node modules uses: actions/cache@v3 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node-
http://www.jsqmd.com/news/896257/

相关文章:

  • 免费获取VMware Workstation Pro 17许可证密钥的终极指南:轻松激活专业虚拟化平台
  • GEO优化服务商头部能力地图:靠谱选择维度全拆解 - 速递信息
  • LCU API实战:构建高效的英雄联盟智能助手
  • 宁波翡翠回收当场打款,合扬2026鉴定完立即到账 - 合扬奢侈品交易中心
  • 上海怡趣建筑工程:上海医院同透地板出售公司 - LYL仔仔
  • STM32F103ZET6驱动正点原子LCD屏:CubeMX配置FSMC的完整避坑指南(附源码)
  • 【AP出版 | CPCI、CNKI、谷歌学术检索】第四届管理创新与经济发展国际学术会议(MIED 2026) - 科研小猫(努力毕业版)
  • 2026年上半年国内无机纤维喷涂施工厂家综合实力排行盘点 优选廊坊纳皓节能科技有限公司 - 奔跑123
  • 2026贺州市本地人必选的水质检测专业机构TOP7推荐!生活饮用水检测、直饮水检测、污水废水检测、矿泉水检测,正规CMA资质检测公司排名推荐 (2026年5月水质检测最新深度调研方案) - 一修哥咨询
  • 高效移除Windows Defender:专业级系统安全组件管理工具指南
  • Windows Server 2012部署SQL Server 2012:从环境准备到数据库连接全流程解析
  • 上海景丰泰再生资源回收:黄浦区废旧电脑回收公司电话 - LYL仔仔
  • 告别Demo模式:手把手教你用CCS 12.4为AWR1843雷达编写自定义算法(附完整工程配置)
  • 2026 ELISA 试剂盒选型要点 结合上海本土厂商分析 - 行情观察室
  • 微信小程序自定义TabBar实战:从官方配置到页面隐藏,一个完整项目带你搞定
  • 【本地电脑端 AI 智能体】 OpenClaw 快速部署 不用复杂环境配置(包含安装包)
  • d2s-editor:暗黑破坏神2专业存档编辑器,打造个性化单机游戏体验
  • 智能课堂监控系统:多模态深度学习技术实践
  • 睡眠实验室脑电波监测:十大乳胶床垫深度睡眠时长排名,TOP1戴茵高纯度护脊 - 博客万
  • 漳州朋友黄金变现的教训:六家靠谱机构推荐,卖金不再后悔 - 黄金上门回收
  • 2026佛山市本地人必选的水质检测专业机构TOP7推荐!生活饮用水检测、直饮水检测、污水废水检测、矿泉水检测,正规CMA资质检测公司排名推荐 (2026年5月水质检测最新深度调研方案) - 一修哥咨询
  • 京东自动评价终极指南:如何用Python脚本告别手动评价烦恼
  • 避开这个坑:TI DS90UB941内部时钟配置Test Pattern的完整寄存器操作指南
  • 淄博黄金上门回收找哪家?福运来口碑领跑 - 上门黄金回收
  • HackBar 实战指南:从安全审计到漏洞挖掘
  • 项目初版设计的报警体系架构与 Java 并发踩过的坑
  • 流水线设计分析说明
  • AI辅助iOS开发实战:从零构建照片整理应用的技术探索
  • 2026年推荐一下全伺服驱动杯成型机供应商 - 品牌推广大师
  • Canmv K210开发板文件管理全攻略:从Flash烧录到脚本下载的三种高效方法