Files
devstar/WORKFLOW_DEBUG_GUIDE.md
2025-11-20 21:12:51 +08:00

4.9 KiB
Raw Permalink Blame History

Gitea 工作流在线调试 - 快速使用指南

🎯 功能特点

  • 在线编辑工作流 - 无需本地编辑后推送
  • 灵活配置参数 - 设置分支、事件、输入、环境变量
  • 实时日志查看 - 及时反馈执行结果
  • 多调试会话 - 并发调试多个工作流
  • 无缝集成 - 使用现有的 Runner 系统

📖 使用步骤

1. 进入工作流页面

打开仓库的 Actions 页面:

https://your-gitea-instance/repos/{owner}/{repo}/actions

2. 选择要调试的工作流

在左侧菜单中点击要调试的工作流文件(如 deploy.yml

3. 点击调试按钮

在筛选菜单右侧,会看到"Debug Workflow"按钮,点击进入调试页面

4. 配置调试环境

在调试页面的左侧面板配置:

🔧 基础配置

  • Reference (分支/标签) - 选择要在哪个分支/标签上执行
  • Event Type (事件类型) - 选择触发事件类型
    • push - 推送事件
    • pull_request - PR 事件
    • workflow_dispatch - 手动触发
    • 其他...

📝 工作流输入

如果工作流支持 workflow_dispatch 输入:

  1. 点击"Add Input"按钮
  2. 输入参数名称和值
  3. 点击运行时会传递这些参数

示例:

Input Name: environment
Input Value: production

Input Name: version
Input Value: 1.0.0

🔐 环境变量

添加自定义环境变量:

  1. 点击"Add Environment"按钮
  2. 输入环境变量名和值
  3. 工作流执行时可以访问这些变量

示例:

ENV Name: DEBUG
ENV Value: true

ENV Name: LOG_LEVEL
ENV Value: debug

📄 工作流内容

直接在编辑框中修改工作流 YAML 内容。支持修改:

  • job 定义
  • step 定义
  • 条件表达式
  • 其他任何工作流语法

5. 执行调试

点击"Run Workflow"按钮启动调试:

  • 工作流会立即开始执行
  • 状态面板会显示运行链接

6. 查看实时日志

在右侧面板查看:

  • 📊 执行日志 - 实时更新每2秒刷新
  • 🔗 运行链接 - 点击查看完整运行页面
  • 📋 复制日志 - 复制所有日志内容

💡 常见场景

场景 1: 调试部署脚本错误

  1. 选择 deploy.yml 工作流
  2. 点击调试
  3. 修改部署步骤中有问题的命令
  4. 在 ref 选择 staging 分支
  5. 设置环境变量 ENVIRONMENT=staging
  6. 运行调试
  7. 查看日志找出问题
  8. 修改代码并重新测试

场景 2: 测试新的工作流输入

  1. 编辑 test.yml 工作流
  2. 点击调试
  3. 添加测试输入参数:
    • test_level: smoke
    • parallel: true
  4. 运行调试
  5. 验证输入是否正确传递

场景 3: 验证不同环境下的行为

  1. 调试工作流
  2. 分别设置环境变量:
    • 第一次:ENV=dev
    • 第二次:ENV=staging
    • 第三次:ENV=production
  3. 对比三次运行的日志
  4. 确保各环境行为正确

⚠️ 注意事项

权限要求

  • 需要对仓库有 Actions 写入权限
  • 只有仓库管理员可以创建调试会话

会话管理

  • 每个调试会话会自动保存编辑的工作流内容
  • 调试会话 24 小时后自动过期并清理
  • 可以创建多个调试会话,互不影响

工作流执行

  • 调试使用的是真实的 Runner和正常运行一样
  • 如果工作流有副作用(如部署、数据库操作),请谨慎
  • 建议在测试分支上进行调试

日志显示

  • 日志实时更新,可能有 1-2 秒延迟
  • 日志存储有保留期,超期会被清理
  • 如需保存日志,请及时复制

🔍 调试技巧

技巧 1: 分步验证

jobs:
  debug:
    runs-on: ubuntu-latest
    steps:
      - name: Print environment
        run: |
          echo "Branch: ${{ github.ref }}"
          echo "Event: ${{ github.event_name }}"
          echo "DEBUG is: $DEBUG"

技巧 2: 添加详细日志

steps:
  - name: Run with debug output
    run: |
      set -x  # Print each command
      my-command --verbose

技巧 3: 条件调试

在工作流中添加调试步骤,使用条件控制:

- name: Debug output
  if: env.DEBUG == 'true'
  run: |
    # 调试命令
    env
    pwd
    ls -la

📞 获取帮助

如遇到问题:

  1. 检查权限 - 确保你有 Actions 写入权限
  2. 查看日志 - 详细的日志通常能指出问题
  3. 简化工作流 - 从最简单的步骤开始测试
  4. 查看文档 - Gitea Actions 官方文档和 GitHub Actions 文档

🚀 最佳实践

推荐做法

  • 在非生产分支上调试
  • 先用 echo 验证变量和路径
  • 逐步扩展工作流复杂度
  • 保存成功的工作流配置

避免做法

  • 不要在生产分支上运行有风险的调试
  • 不要频繁修改无关工作流
  • 不要忽视失败的调试运行
  • 不要保留临时的调试代码在最终版本

提示: 该调试功能专为开发者设计,可以大幅加快 CI/CD 流程的故障排查和优化。充分利用它可以显著提高开发效率!