Files
markbase/docs/GITHUB_ACTIONS_LOCAL_ALTERNATIVE_GUIDE.md
Warren 1300a4e223
Some checks failed
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
MarkBase架构升级:Multi-Volume Virtual Tree + Dual-View Management + Git Remote修正
核心功能:
-  Categories/Series双视图管理(category_view.rs + import_markdown.rs)
-  FUSE Multi-Volume支持(tree_type参数)
-  SSH/SFTP/SCP/rsync协议完整实现(4042行)
-  NFS/SMB Module Phase 1-3完成
-  Archive Module Phase 1-4完成(2916行)
-  Download Center API完整实现
-  S3兼容API实现(560行)

Git配置修正:
-  删除错误origin(gitea.momentry.ddns.net)
-  删除m5max128(指向机器名)
-  设置origin = m5max128gitea.momentry.ddns.net/admin/markbase
-  设置m4minigitea = m4minigitea.momentry.ddns.net/warren/markbase

数据清理:
-  删除38个临时SQLite(保留accusys.sqlite、demo.sqlite)
-  删除.bak、test_*.bin、调试脚本等临时文件
-  删除临时目录(build/、download files/、raid_test/等)
-  更新.gitignore排除临时文件

架构优化:
- 52个文件修改,2434行新增,4739行删除
- Workspace成员整合(16个crate)
- 数据库状态:accusys.sqlite保留(主demo测试)

远程同步:
-  准备推送到m5max128gitea(远程Gitea)
-  准备推送到m4minigitea(本地Gitea)
2026-06-12 12:59:54 +08:00

11 KiB
Raw Blame History

GitHub Actions本质与本地替代方案指南

日期: 2026-05-29
问题: GitHub Actions是网上资源吗可以local实现吗
结论: GitHub Actions是云端服务但可以本地实现


一、GitHub Actions本质

1.1 GitHub Actions是什么

GitHub Actions是GitHub提供的云端CI/CD服务

GitHub Actions本质
├── 类型: 云端服务Cloud Service✅
├── 提供者: GitHubMicrosoft✅
├── 运行位置: GitHub云端服务器 ✅
├── 访问方式: 网络访问Internet✅
├── 资源: GitHub提供的服务器资源 ✅
└── 结论: ✅ 确实是网上资源(云端)

关键特征:

  • 云端运行(无需本地资源)
  • GitHub提供服务器
  • 需要网络访问
  • Public repo免费使用
  • ⚠️ Private repo有限制每月2000分钟免费

1.2 为什么是云端服务?

云端服务的优势:

云端服务优势:
├── 无需本地资源: 云端服务器 ✅
├── 专业环境: Windows Server/Linux/macOS ✅
├── 自动化: Push自动触发 ✅
├── 团队协作: 团队成员共享 ✅
├── 报告存储: GitHub存储测试结果 ✅
└── 易用性: 无需配置本地环境 ✅

云端服务的劣势:

云端服务劣势:
├── 需要网络: 无网络无法使用 ❌
├── 需要GitHub: 需GitHub账号 ❌
├── 速度限制: 云端排队等待 ⚠️
├── 数据隐私: 数据上传云端 ⚠️
└── 资源限制: 有使用时间限制 ⚠️

二、本地替代方案

2.1 本地实现的可能性

可以本地实现!

本地实现方案:
├── 方案1: act ⭐⭐⭐(最佳)
│   ├── 工具: Run GitHub Actions locally
│   ├── 优势: 完全兼容GitHub Actions workflow
│   ├── 本地运行: ✅ 100%本地
│   └── 推荐度: ⭐⭐⭐ 最佳方案
│
├── 方案2: Docker ⭐⭐⭐(专业)
│   ├── 工具: Docker Windows容器
│   ├── 优势: 真实Windows环境
│   ├── 本地运行: ✅ 100%本地
│   └── 推荐度: ⭐⭐⭐ 专业方案
│
├── 方案3: Jenkins ⭐⭐(企业级)
│   ├── 工具: 本地CI/CD服务器
│   ├── 优势: 企业级CI/CD
│   ├── 本地运行: ✅ 100%本地
│   └── 推荐度: ⭐⭐ 企业方案
│
└── 方案4: GitLab Runner ⭐⭐(完整)
│   ├── 工具: GitLab本地runner
│   ├── 优势: GitLab生态集成
│   ├── 本地运行: ✅ 100%本地
│   └── 推荐度: ⭐⭐ GitLab方案

三、方案详解act推荐

3.1 act是什么

act工具介绍

act工具
├── 名称: Run your GitHub Actions locally
├── 开源: MIT License ✅
├── GitHub: https://github.com/nektos/act
├── 功能: 本地运行GitHub Actions workflow ✅
├── 兼容: 100%兼容GitHub Actions语法 ✅
└── 安装: brew install act ✅

关键优势:

  • 100%本地运行(无需云端)
  • 完全兼容GitHub Actions workflow
  • 无需修改workflow文件
  • 快速测试(无需云端排队)
  • 数据安全(本地数据不上传)

3.2 act安装与使用

安装act

# 安装act
brew install act

# 验证安装
act --version
which act

使用act

# 在项目根目录运行
cd /Users/accusys/markbase

# 运行所有workflow
act

# 运行特定workflow
act -j test

# 运行特定event
act push

# 列出所有workflow
act -l

# 使用特定runner
act -P windows-latest=-self-hosted

act运行原理

act运行原理
├── 读取.github/workflows/*.yml文件
├── 解析GitHub Actions语法
├── 使用Docker容器模拟runner环境
├── 本地执行workflow步骤
├── 输出结果到本地终端
└── 结论: ✅ 完全本地运行

3.3 act的Docker依赖

act依赖Docker

act依赖
├── Docker: 必需模拟runner环境
├── Docker镜像: 自动下载GitHub Actions镜像
├── 本地资源: 使用本地Docker容器
└── 结论: ⚠️ 需安装Docker但仍然本地

启动Docker

# macOS启动Docker
open -a Docker

# 等待Docker启动
sleep 5

# 验证Docker运行
docker info

四、方案详解Docker Windows容器

4.1 Docker方案介绍

Docker Windows容器方案

Docker Windows容器
├── 类型: 本地容器化Windows环境 ✅
├── 运行方式: Docker容器 ✅
├── 环境: Windows Server Core ✅
├── 本地资源: 使用本地Mac资源 ✅
└── 结论: ✅ 100%本地实现

4.2 Docker方案实施

实施步骤:

# Step 1: 启动Docker
open -a Docker
sleep 5

# Step 2: 拉取Windows镜像
docker pull mcr.microsoft.com/windows/servercore:ltsc2022

# Step 3: 运行Windows容器
docker run -it mcr.microsoft.com/windows/servercore:ltsc2022 powershell

# Step 4: 在容器内运行Windows程序
# 复制hybrid-poc-test.exe到容器
docker cp target/x86_64-pc-windows-gnu/release/hybrid-poc-test.exe <container_id>:/tmp/

# Step 5: 在容器内执行
docker exec -it <container_id> /tmp/hybrid-poc-test.exe

Docker优势

  • 真实Windows环境Server Core
  • 完全本地运行
  • 可重复测试
  • 资源隔离
  • ⚠️ macOS ARM运行x86容器有性能损失

五、方案对比云端vs本地

5.1 GitHub Actions云端vs act本地

详细对比:

特性 GitHub Actions云端 act本地 差异
运行位置 GitHub云端 本地Mac 本地优势
网络需求 需网络 无需网络 本地优势
速度 云端排队 即时运行 本地优势
资源限制 有时间限制 无限制 本地优势
数据隐私 上传云端 本地保存 本地优势
环境质量 专业Windows Server Docker模拟 ⚠️ 云端优势
易用性 无需配置 需安装Docker ⚠️ 云端优势
成本 免费Public 免费 一致

5.2 使用场景对比

不同场景的推荐:

场景 推荐方案 原因
团队协作 GitHub Actions云端 团队共享、云端报告
CI/CD集成 GitHub Actions云端 自动化、Push触发
快速测试 act本地 即时运行、无排队
私密项目 act本地 数据不上传云端
无网络环境 act本地 无需网络
完整测试 Docker本地 真实Windows环境

六、立即实施指南

6.1 act快速实施推荐

10分钟快速实施

# Step 1: 安装act2分钟
brew install act

# Step 2: 启动Docker3分钟
open -a Docker
sleep 5

# Step 3: 验证act1分钟
act --version

# Step 4: 运行workflow即时
cd /Users/accusys/markbase
act

# Step 5: 查看结果(即时)
# 本地终端显示结果 ✅

预期结果:

act运行预期
├── 读取.github/workflows/windows-test.yml
├── 启动Docker容器模拟windows-latest
├── 执行workflow步骤
├── 输出结果到本地终端
└── 结论: ✅ 完全本地运行

6.2 Docker快速实施

15分钟快速实施

# Step 1: 启动Docker3分钟
open -a Docker
sleep 5

# Step 2: 拉取Windows镜像5分钟
docker pull mcr.microsoft.com/windows/servercore:ltsc2022

# Step 3: 复制Windows程序1分钟
docker create --name win-test mcr.microsoft.com/windows/servercore:ltsc2022
docker cp target/x86_64-pc-windows-gnu/release/hybrid-poc-test.exe win-test:/tmp/

# Step 4: 运行测试(即时)
docker start win-test
docker exec win-test /tmp/hybrid-poc-test.exe

# Step 5: 查看结果(即时)
docker logs win-test

七、高级方案Jenkins/GitLab Runner

7.1 Jenkins本地CI/CD

Jenkins方案

# 安装Jenkins
brew install jenkins-lts

# 启动Jenkins
brew services start jenkins-lts

# 访问Jenkins
# http://localhost:8080

# 配置Windows agent
# 使用Docker或远程Windows VM作为agent

Jenkins优势

  • 企业级CI/CD
  • 完全本地控制
  • 插件丰富
  • ⚠️ 配置复杂

7.2 GitLab Runner本地

GitLab Runner方案

# 安装GitLab Runner
brew install gitlab-runner

# 注册runner
gitlab-runner register

# 启动runner
gitlab-runner run

# 本地运行GitLab CI
# 配置.gitlab-ci.yml

GitLab Runner优势

  • GitLab生态集成
  • 完全本地控制
  • ⚠️ 需GitLab服务器或GitLab.com

八、总结与建议

8.1 核心结论

GitHub Actions是云端服务但可以本地实现

总结:
├── GitHub Actions: ✅ 云端服务需网络、需GitHub
├── 本地实现: ✅✅✅ 完全可行(多种方案)
├── 推荐方案: act ⭐⭐⭐兼容GitHub Actions、本地运行
└── 结论: ✅ 可以local实现

8.2 推荐方案排序

本地方案推荐排序:

推荐排序:
├── 1. act ⭐⭐⭐(最佳)
│   ├── 优势: 兼容GitHub Actions、无需修改workflow
│   ├── 本地: ✅ 100%本地
│   ├── 成本: 免费
│   └── 适合: 快速测试、私密项目
│
├── 2. Docker ⭐⭐⭐(专业)
│   ├── 优势: 真实Windows环境、资源隔离
│   ├── 本地: ✅ 100%本地
│   ├── 成本: 免费
│   └── 适合: 完整测试、重复测试
│
├── 3. Jenkins ⭐⭐(企业级)
│   ├── 优势: 企业级CI/CD、完全控制
│   ├── 本地: ✅ 100%本地
│   ├── 成本: 免费
│   └── 适合: 企业环境、复杂CI/CD
│
└── 4. GitLab Runner ⭐⭐GitLab生态
    ├── 优势: GitLab集成、本地控制
    ├── 本地: ✅ 100%本地
    ├── 成本: 免费
    └── 适合: GitLab用户

8.3 立即行动建议

推荐立即使用act本地GitHub Actions

# 10分钟快速实施
brew install act          # 安装act
open -a Docker            # 启动Docker
sleep 5                   # 等待Docker启动
cd /Users/accusys/markbase # 进入项目
act                       # 运行GitHub Actions本地 ✅

# 完成!完全本地运行 ✅

九、关键优势总结

本地实现的关键优势:

本地实现优势:
├── 无需网络: ✅ 无网络也能测试
├── 无需GitHub: ✅ 无GitHub账号也能用
├── 数据安全: ✅ 数据不上传云端
├── 即时运行: ✅ 无云端排队等待
├── 无限制: ✅ 无使用时间限制
├── 完全控制: ✅ 完全本地控制
└── 结论: ✅✅✅ 本地实现完全可行且优势明显

一句话总结:
GitHub Actions是云端服务但可以本地实现推荐act工具兼容GitHub Actions、100%本地运行、10分钟实施。也可用Docker Windows容器真实Windows环境、本地运行


指南完成日期: 2026-05-29
GitHub Actions本质 云端服务
本地实现: 完全可行
推荐方案: act